프로퍼티의 표시 이름을 프로그래밍 방식으로 재정의 할 수 있기를 원합니다.오버라이드 모델보기 모델 이름
표시 이름이 정의 된보기 모델이 있습니다.
[Display(Name = "Reference")]
public string Reference { get; set; }
문자열 재정의 매개 변수를 사용하는 LabelFor() 확장에 대한 오버로드를 만들었습니다. 이런 식으로 호출
public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>> expression, string applicationVariableOverride)
{
if (applicationVariableOverride != null)
return new MvcHtmlString(applicationVariableOverride);
else
return System.Web.Mvc.Html.LabelExtensions.LabelFor<TModel, TValue>(htmlHelper, expression);
}
... :
@Html.LabelFor(x => x.Reference, "New Reference Display Name")
이 어떤 메시지에 따라 라벨 잘 작동하지만 텍스트가 설정되는 이러한 속성을 사용하여 유효성 검사 메시지에 대해 작동하지 않습니다 동적 표시되고 있습니다. 대신이 함수에서 속성의 표시 이름을 전달 (또는 설정)하고 싶습니다.
속성에 직접 액세스하고 해당 속성 (표시 이름) 중 하나에 액세스하려고합니까 아니면 더 간단한 방법이 있습니까?
감사
답장을 보내 주셔서 감사합니다. 나는 이것이 표시 이름을 설정하는 논리적 인/정확한 장소가 될 것이므로 속성을 오버라이드하고 싶습니다. 그러나 그것은 상수가 아닌 어떤 것도 통과시키지 않을 것입니다 ... – Beakie