[c#] 지정된 텍스트 용 Html.Label

누구나 사용할 때 텍스트를 지정하는 방법에 대한 아이디어를 얻었습니다 Html.LabelFor(c=>c.MyField). 그것은 단지 MyField, 대신 “슈퍼 환상적인 필드”를 할 수 있습니다 화면에 표시하기에 적절한 이름되지 않을 수도 있지만 과부하가있을 나타나지 않습니다.

어떤 아이디어?



답변

다음을 사용합니다 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에는 새로운 오버로드가 있으므로 도우미의 레이블에 대한 사용자 지정 테스트를 지정할 수 있어야합니다.


답변

아직 v2를 다운로드하지 않았기 때문에 테스트 할 수는 없지만 DynamicData처럼 작동한다고 생각합니다.이 경우 모델에서 다음과 같이 할 수 있습니다.

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


답변

두 가지 방법이 있습니다
(1) “직접 주석을”
2 “리소스와 Annotatinos”
직접 주석

[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에서 생성 된 것을 기억하는 것 같습니다. 나는 당신이 항상 그것을 수정할 수 있다고 생각하지만 CP2에서 과부하를 제공 할 것이라고 생각합니다.

편집 : 소스는 항상 사용할 수 있으므로 방법을 변경하고 T4 생성기를 변경하면됩니다. 또한 해당 모드에 대한 티켓이나 요청 (어떻게 든)을 넣어 다음 버전에서 작업하도록합니다.


답변

5 개의 과부하가 있습니다. 몇몇은 “The Super Fantastic Field”로 설정하는 “string labelText”의 두 번째 매개 변수를 제공합니다.