在元数据部分类
问题描述:
使用AdditionalMetadata我按照在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。
答
首先,您必须声明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>
谢谢,但是我得到的错误: 属性'AdditionalMetadata'在此声明类型无效。它只对'类,属性,索引器,接口'声明有效。 –
请参阅更新。 – Sampath
是现在工作还是什么? – Sampath