2016-09-27 29 views
1

使用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。

回答

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> 
+0

謝謝,但是我得到的錯誤: 屬性'AdditionalMetadata'在此聲明類型無效。它只對'類,屬性,索引器,接口'聲明有效。 –

+0

請參閱更新。 – Sampath

+0

是現在工作還是什麼? – Sampath