2010-01-08 4 views
4

이것은 하나의 속성에 대해 Scott Guthrie's blog에 따라 자동으로 부분 뷰를 사용하여 부분 모델을 전달하는 것입니다 (동적 데이터와 같은 UI 도우미) :MVC 2에서 UI 도우미 템플릿 (속성이 아닌)에 대한 클래스에 주석을 추가하는 방법은 무엇입니까?

어떻게 주석을 달았습니까? 클래스 전체에서 UI 헬퍼를 사용하는 전체 클래스 :

[UIHint("Address")] 
public class Address { 
    public string addr1 { get; set; } 
    public string addr2 { get; set; } 
    public string city { get; set; } 
    [UIHint("StateDropDown")] 
    public string state { get; set; } 
    public string zip { get; set; } 
} 

(UIHint ("Address")를 제외하고는 클래스에서 작동하지 않습니다.) 그의 예제에서 볼 수있는 "Customer.aspx"가 있습니다. 공유 -> EditorTemplates 폴더, 그래서 이것이 가능하다고 가정합니다 .

+0

EditorFor (m => m.Address)는 기본적으로 "EditorTemplates"폴더에 Address.ascx를 사용합니다. "DisplayTemplates"폴더에서 DisplayFor (m => m.Address)에 대해 아마 똑같이하는 "DisplayFor"폴더가 있습니다. 나는 당신이 기본 렌더링 부분보기를 제공하기 위해 "Object.ascx"를 넣을 수 있음을 본다. Scott Guthrie의 글을 사랑해야한다. –

답변

3

클래스 이름으로 템플릿을 만드십시오. 그냥 작동합니다.

+0

좋아요! 나는 Html.EditorForModel ("nameOfViewTemplate")도 보았다. 보기 템플리트는 표시 할 필드를 결정할 수 있으며 MVC는 해당 필드가 채울 수 있다고 가정합니다 (뷰에 모델 필드가없는 경우). 두 개 이상의 BeginForm()이 필요하지 않기 때문에 동일한 형식의 엔터티가 여러 개있는 경우 BeginForm을 뷰 템플릿 (부분 페이지)에 넣지 않을 것이라고 생각합니까? –

+0

우리가 이것을 할 수 있다면 정말 좋을 것입니다 : Html.EditorForModel ("Address", Model.appEmployee.empAddress) –

+2

Html.EditorFor (model => model.appEmployee.empAddress, "Address") –

관련 문제