2010-11-21 3 views
2

EditorForModel 메서드와 같은 속성에 대한 레이블 및 유효성 검사를 EditorFor 메서드에서도 수행 할 수 있습니까?asp.net mvc editorfor

Now 속성 (예 : 문자열)에 EditorFor 메서드를 사용하면 텍스트 상자 만 렌더링됩니다.

편집

아르 니스 나는 그것을 밖으로 시도하고 거기에 몇 가지 문제 :

확장 방법은 일반 Html 헬퍼 클래스에 바인드해야합니다. 또한 도우미로부터 문자열을 반환하면 인코딩 된 html이 발생했습니다.

그래서 코드

public static MvcHtmlString EditorWithLabel<T>(this HtmlHelper<T> h,Expression<Func<T, object>> p) 
{ 
     return new MvcHtmlString(string.Format("{0}: {1}", h.LabelFor(p), h.EditorFor(p))); 
} 

을 수정하지만 큰 문제는 그것은 단지 PROPERT이 String 유형 인 경우와 함께 작동합니다.

속성이 Decimal, Int, DateTime 인 경우 excetion이 발생합니다.

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

+0

나는 다른 곳에 문제가있을 것이라 확신합니다. int, decimals, datetimes 및 사용자 정의 유형에도 동일한 접근 방식을 사용합니다. –

+0

ASP.NET MVC 3 RC (면도기)를 사용하여 문제가 될 수 있습니까? – user137348

답변

1

내가 (코드가 안된) 사용자 정의 HTML 도우미를 만들 것입니다 :

public string EditorWithLabel<T>(this HtmlHelper h, 
    Expression<Func<T, object>> p){ 

    return string.Format("{0}: {1}",h.LabelFor(p),h.EditorFor(p)); 
} 

이 너무 templates을 달성 할 수 있지만, 나는 정의 도우미 더 잘 맞는 것 같아요.

+0

내 게시물을 참조하십시오, 나는 그것을 편집했습니다. – user137348