면도기 엔진에서는 LabelFor
도우미 메서드를 사용 하여 이름을 표시했습니다.
그러나 표시 이름은 표시하기에 좋지 않은 것 같습니다. 그래서 내 표시 이름을 변경해야합니다.
@Html.LabelFor(model => model.SomekingStatus, new { @class = "control-label"})
면도기 엔진에서는 LabelFor
도우미 메서드를 사용 하여 이름을 표시했습니다.
그러나 표시 이름은 표시하기에 좋지 않은 것 같습니다. 그래서 내 표시 이름을 변경해야합니다.
@Html.LabelFor(model => model.SomekingStatus, new { @class = "control-label"})
답변:
속성을 사용하여 뷰 모델 속성을 장식 [DisplayName]
하고 사용할 텍스트를 지정할 수 있습니다.
[DisplayName("foo bar")]
public string SomekingStatus { get; set; }
또는 텍스트를 지정할 수있는 LabelFor 도우미의 다른 오버로드를 사용합니다.
@Html.LabelFor(model => model.SomekingStatus, "foo bar")
그리고 아니요, LabelFor
도우미가 지원하지 않으므로 MVC3에서 클래스 이름을 지정할 수 없습니다 . 그러나 이것은 MVC4 또는 5에서 작동합니다.
@Html.LabelFor(model => model.SomekingStatus, "something other than foo bar")
이것은 오래된 질문 이었지만 기존 답변은 모델을 다시 생성 할 때 사용자 지정 속성을 버리는 심각한 문제를 무시합니다. 현재 사용 가능한 옵션을 다루기 위해 더 자세한 답변을 추가하고 있습니다.
[DisplayName("Name goes here")]
데이터 모델 클래스에 속성을 추가하십시오 . 단점은 데이터 모델을 재생성 할 때마다 버려진다는 것입니다.Html.LabelFor
. 예를 들어 @Html.LabelFor(model => model.SomekingStatus, "My New Label", new { @class = "control-label"})
참조 : https://msdn.microsoft.com/en-us/library/system.web.mvc.html.labelextensions.labelfor(v=vs.118).aspx 단점은 레이블을 반복해야한다는 것입니다. 모든 관점에서.Microsoft는 기존 클래스를 수정하지 않고도 Entity Framework 클래스의 속성을 장식 할 수 있습니다 ! 이는 데이터베이스 클래스에 연결되는 메타 데이터 클래스 (효과적으로 EF 클래스의 측면 확장)를 가짐으로써 가능합니다. 이렇게하면 데이터 모델을 재생성 할 때 변경 사항이 손실되지 않도록 클래스 자체가 아닌 관련 클래스에 속성을 추가 할 수 있습니다 .
예를 들어 데이터 클래스 MyModel
에 SomekingStatus
속성이있는 경우 다음과 같이 할 수 있습니다.
먼저 동일한 이름 의 부분 클래스 를 선언하고 (동일한 네임 스페이스를 사용하여) 재정의하지 않고 클래스 속성을 추가 할 수 있습니다.
[MetadataType(typeof(MyModelMetaData))]
public partial class MyModel
{
}
생성 된 모든 데이터 모델 클래스는 부분 클래스이므로 동일한 이름의 클래스를 더 많이 생성하여 추가 속성 및 메서드를 추가 할 수 있습니다 (매우 편리하며 모델에서 다른 필드 유형의 형식화 된 문자열 버전을 제공하는 데 자주 사용합니다. ).
2 단계 : 새 partial 클래스에서 참조하는 메타 데이터 클래스를 추가합니다.
public class MyModelMetaData
{
// Apply DisplayNameAttribute (or any other attributes)
[DisplayName("My New Label")]
public string SomekingStatus;
}
[required]
등) 의 기존 속성을 무시할 수 있으므로 메타 데이터 클래스에서 복제해야 할 수 있습니다.속성을 속성으로 장식하여 레이블의 텍스트를 변경할 수 있습니다 DisplayName
.
[DisplayName("Someking Status")]
public string SomekingStatus { get; set; }
또는 원시 HTML을 명시 적으로 작성할 수 있습니다.
<label for="SomekingStatus" class="control-label">Someking Status</label>