0
我正在向MVC3做出我的第一個嘗試性步驟,並遇到將模型中的導航屬性轉換爲視圖的問題。在視圖中,似乎導航屬性不允許客戶端驗證,也沒有拾取「顯示」標籤屬性。MVC3導航屬性屬性和客戶端驗證
我有以下簡單的模型:
public class Entity
{
[Key,
ScaffoldColumn(false)]
public int Entity_Id { get; set; }
[Display(Name = "Entity Name"),
Required(ErrorMessage = "Please enter the entity name."),
StringLength(150, ErrorMessage = "Please ensure that the entity name is under 150 characters.")]
public string Entity_Nm { get; set; }
[Display(Name = "Entity Type"),
Required(ErrorMessage="Please select the entity type"),
ForeignKey("EntityType")]
public int EntityType_Id { get; set; }
public virtual EntityType EntityType { get; set; }
}
它引用這種模式:
public class EntityType
{
[Key]
public int EntityType_Id { get; set; }
[Display(Name = "Entity Name"), Required(ErrorMessage="Please enter the entity type name.")]
public string EntityType_Nm { get; set; }
}
當我創建讀取控制器/寫這個模型我得到以下創建行動和意見形式:
<fieldset>
<legend>Entity</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Entity_Nm)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Entity_Nm)
@Html.ValidationMessageFor(model => model.Entity_Nm)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.EntityType_Id, "EntityType")
</div>
<div class="editor-field">
@Html.DropDownList("EntityType_Id", String.Empty)
@Html.ValidationMessageFor(model => model.EntityType_Id)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
除了Entity Type下拉列表的標籤外, ,由於某些原因,它沒有拾取模型中導航屬性的「顯示」屬性(請注意缺少空間)。此外,儘管使用「必需」屬性修飾了屬性,但未對下拉列表啓用客戶端驗證(服務器端驗證無問題)。客戶端驗證適用於其他字段。請注意,所有必需的.js腳本文件都已包含在內,並且我還將相關的啓用驗證密鑰添加到web.config中。
任何想法我在這裏失蹤?感謝所有人。
感謝swapneel我已經使用瞭解決該問題的標籤,問題是爲什麼使用附加參數生成表單?這意味着如果表單是自動生成的,我將需要記住更改。 –