문제

누구나 사용할 때 텍스트를 지정하는 방법에 대한 아이디어를 얻었습니다. Html.LabelFor(c=>c.MyField). 그냥이야 MyField 화면에 표시하기에 적절한 이름이 아닐 수도 있으므로 대신 "The Super Fantastic Field"를 원할 수도 있지만 과부하가있는 것처럼 보이지 않습니다.

어떤 아이디어?

도움이 되었습니까?

해결책

너는 사용한다 System.ComponentModel.DataAnnotations.DisplayAttribute:

[Display(Name = "My Field")]
public string MyField { get; set; }

설정 ResourceType 속성의 속성을 사용하면 리소스 파일을 사용할 수 있습니다.

(.NET 4 이전에 사용하기 전에 System.ComponentModel.DisplayNameAttribute 디스플레이 이름이 컴파일 타임 상수 여야한다는 경고를 사용하여.)

다른 팁

쉬운 솔루션보기에 다음을 추가하십시오.

@Html.LabelFor(c=>c.MyField, "My Field")

MVC 3에는 새로운 오버로드가 있으므로 Labelfor 도우미에 대한 사용자 정의 테스트를 구체화 할 수 있어야합니다.

아직 v2를 다운로드하지 않았으므로 테스트 할 수는 없지만 DynamicData와 같이 작동한다고 생각합니다.이 경우 모델에서 이와 같은 작업을 수행 할 것입니다.

[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}

두 가지 방법이 있습니다
1 "직접 주석"
2 "자원이있는 아노타티노"
직접 주석

[Display(Name = "My Field")]
public string MyField { get; set; }

자원이있는 Annotatinos

[Display(Name = "My_Field",ResourceType = typeof(Resource))]
public string MyField { get; set; }

두 번째 방법은 아마도 자원 파일에 값을 추가해야합니다. resource.resx.
당신의 목적에 맞는 것을 사용하십시오.

아직 CP1을 확인하지는 않았지만 Scott의 릴리스를 읽었으며 코드가 T4에 의해 생성되었음을 기억하는 것 같습니다. 나는 당신이 항상 그것을 mod 할 수 있다고 생각하지만, 그들이 CP2에서 과부하를 제공 할 것이라고 생각합니다.

편집 : 소스는 항상 사용할 수 있으므로 메소드를 수정하고 T4 생성기를 변경하면 이동하기에 좋습니다. 또한 해당 모드에 대한 티켓이나 요청 (어떻게 든)를 입력하여 다음 버전으로 작동합니다.

5 개의 과부하가 있습니다. 몇몇은 "String LabelText"의 두 번째 매개 변수를 제공하며 "Super Fantastic Field"로 설정합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top