非常に単純な要件があります。MVC4プロジェクトでは、@ HTML.labelForフィールドを使用してフォームを表示する必要があります。このフィールドは、viewmodelクラスのプロパティの属性フィールドから値を取得します。従業員コードなどの単純なプロパティでは正常に機能しますが、個人クラスのカスタムデータ型では機能しません。
namespace MvcApplication1.Models
{
public class EmployeeViewModel
{
[Display(Name = "Employee Code:")]
public string EmpCode { get; set; }
public person PersonInfo { get; set; }
[Display(Name = "Department Name:")]
public string Department { get; set; }
}
}
namespace MvcApplication1.Models
{
public class Person
{
[Display(Name = "First Name:")]
public string FName { get; set; }
[Display(Name = "Last Name:")]
public string LName { get; set; }
}
}
@Html.LabelFor(m => Model.EmpCode)
ラベルを従業員コードとして正しく表示します。
@Html.LabelFor(m => Model.PersonInfo.FName)
ラベルがFNameとして誤って表示されます:
@Html.LabelFor(m => Model.PersonInfo.LName)
ラベルがLNameとして誤って表示されます:
@Html.LabelFor(m => Model.PersonInfo.Department)
ラベルを部門名として正しく表示します:
オブジェクトタイプのプロパティの属性情報を表示する方法を理解しようとしています。拡張メソッドを使用していますか?