我有以下編輯器模板名爲'DropDown.cshtml'。 list
部分工作正常,並且模板使用一些巫毒我從ViewData
獲得所需的SelectList
。控制器將視圖模型中的所有選擇列表放入ViewData
,事物的列表方面沒有任何問題。爲什麼DropDownListFor不能識別我的編輯器模板中的選定值?
@{
var list = this.GetModelSelectList();
}
@Html.DropDownListFor(m => Model, list)
我使用外鍵視圖模型屬性此模板像這樣的:
[Required]
[UIHint("DropDown", "MVC", "SelectListName", "JobLevelSelectList")]
[Display(Name = "Job Level")]
public Guid? JobLevelId { get; set; }
public SelectList JobLevelSelectList { get; set; }
在控制器方面,JobLevelId
是否具有正確的價值立即執行的觀點之前,還沒有項目就在選定呈現select
元素。或者說,總是選擇選擇列表中的第一項。
爲什麼DropDownListFor
在我的編輯器模板中使用時忽略了屬性值,但在直接調用時工作正常?
請參閱http://stackoverflow.com/questions/10039006/mvc-dropdownlist-selectedvalue-not-displaying-correctly – RickAndMSFT 2012-04-15 16:25:38
@RickAndMSFT,我沒有看到任何問題或其答案真的適用於此。接受的答案是'DropDownListFor'的lambda中的model屬性覆蓋了選擇列表的* selected ID *。這對我的'lambda值'問題僅僅在我的編輯器模板中被忽略了,而不是在我的原始DDL中沒有幫助。 – ProfK 2012-04-15 20:59:05
如果'ExpressionHelper.GetExpressionText()'(這是幫助程序用於查找屬性名稱)不適用於'm => Model',我不會感到驚訝。 – bhamlin 2012-04-15 23:23:57