2011-04-19 2 views
4

ASP.NET MVC 3 RTM을 사용하고 있습니다. 속성을 사용하여 뷰 모델에서 렌더링 된 HTML을 변경할 수 있습니까?.NET 데이터 주석 속성을 사용하여 사용자 정의 HTML 속성 또는 CSS 클래스를 추가하는 방법은 무엇입니까?

예 :.

public class Product 
{ 
    [AddHtmlAttribute(Name = "disabled", Value = "disabled")] 
    public string Name { get; set; } 
} 

내가 속성이 렌더링 된 HTML의 변경을 요구하는 경우, 나는 그것을 알고에서 해당 속성의 결과가 제대로 만 속성으로 수행 할 수 없습니다. 아마도 인터페이스를 구현하여 시스템에 연결해야하지만 어디에서 봐야합니까?

MVC는 기본 편집기 템플릿을 사용하고 MVC 3 소스 코드에서 살펴 봤지만 렌더링 된 요소에 어떻게 든 연결할 수 있는지 파악할 수 없었습니다. 몇 가지 속성을 추가하십시오. 검증 시스템이 사용자 정의 HTML 속성을 추가하여 눈에 거슬리지 않는 검증을 지원한다는 것을 알고 있습니다.

나는 내가 어디를 봐야하는지, 또는 어떤 인터페이스를 봐야하는지에 대한 포인터가 필요하다고 생각한다.

정말 고마워요.

업데이트 : 내 필드에 표준 HTML 도우미 Html.EditorFor(model => model.Name)을 사용하고 있으며 어떤 편집기 템플릿도 덮어 쓰지 않았습니다. 기본 템플릿을 변경하거나 덮어 쓸 필요가 없다면 정말 좋을 것입니다.

+0

보기 코드 샘플을 제공해 주시겠습니까? 입력 헬퍼, 편집기 템플릿 (빌트인, 커스텀)을 사용하고 있습니까? – marcind

+0

감사합니다. 큰 도움이되었습니다. – P6345uk

답변

5

following blog post은 사용자 정의 DataAnnotationsModelMetadataProvider 속성을 작성하고 기본 템플리트를 대체하여이를 수행하는 방법을 보여줍니다.

+0

링크를 제공해 주셔서 감사합니다. 매우 도움이됩니다. 그러나 기본 서식 파일을 무시하지 않고도 할 수 있었으면 좋겠다. –

+0

@Gunder, 아니요, 나는 그럴 수 없습니다. EditorFor를 사용하면 기본 템플릿이 렌더링되고 재정의하지 않으면 이러한 속성이 포함되지 않습니다. –

+0

고마워 이것이 대단한 도움이되었습니다. – P6345uk

관련 문제