在MetaData分部类

时间:2016-09-27 14:42:39

标签: asp.net-mvc entity-framework asp.net-mvc-4 metadata

我已按照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。

1 个答案:

答案 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>