我已按照https://www.asp.net/mvc/overview/getting-started/database-first-development/enhancing-data-validation的示例将数据注释添加到MetaData.cs
我正在尝试使用AdditionalMetaData,以便我可以将变量传递给EditorTemplate。我试过了:
[AdditionalMetadata("VariableName", "VariableValue")]
[Display(Name = "Last Name")]
[StringLength(50)]
public string LastName;
我希望这将以与StringLength元数据类似的方式应用。
我是否需要修改PartialClasses.cs?目前,这将模型和元数据类与:
相关联[MetadataType(typeof(StudentMetadata))]
public partial class Student
{
}
非常感谢任何帮助。
更新的
MetaData.cs包含:
[AdditionalMetadata("VariableName", "VariableValue")]
[Display(Name = "Last Name")]
[StringLength(50)]
public string LastName;
PartialClasses.cs包含:
[MetadataType(typeof(StudentMetadata))]
public partial class Student
{
}
Student.cs包含:
public string LastName{ get; set; }
我不想修改Students.cs - 因为我将来可能需要重新生成它。我原本希望在MetaData.cs中添加AdditionalMetaData。
答案 0 :(得分:0)
首先,您必须将LastName
声明为属性。
[AdditionalMetadata("VariableName", "VariableValue")]
[Display(Name = "Last Name")]
[StringLength(50)]
public string LastName { get; set; }
无需对PartialClasses.cs
进行任何更改。您必须在视图中正确检索它,如下所示。
<h2>
@ModelMetadata.FromLambdaExpression(x => x.LastName, ViewData).AdditionalValues["VariableName"]
</h2>