我有簡單的測試模式:MVC3 DropDownListFor沒有選擇項目(MVC錯誤?)
public class MyModel
{
public InnerModel InnerModel { get; set; }
}
public class InnerModel
{
public int Value { get; set; }
}
在控制器:
public ActionResult Index()
{
var model = new MyModel();
model.InnerModel = new InnerModel { Value = 3 };
return View("MyModelView", model);
}
MyModelView:
@model MyModel
@{
var items = new List<SelectListItem>()
{
new SelectListItem {Text = "one", Value = "1"},
new SelectListItem {Text = "two", Value = "2"},
new SelectListItem {Text = "three", Value = "3"}
}; }
@Html.DropDownListFor(m=>m.InnerModel.Value,items,"no_selected")
當頁面加載我看到選定的項目:
這很好。
但是,如果我添加EditorTemplate InnerModel.cshtml:
@model InnerModel
@{
var items = new List<SelectListItem>()
{
new SelectListItem {Text = "one", Value = "1"},
new SelectListItem {Text = "two", Value = "2"},
new SelectListItem {Text = "three", Value = "3"}
}; }
@Html.DropDownListFor(m=>m.Value,items,"no_selected")
,並更改MyModelView:
@model MyModel
@Html.EditorFor(m=>m.InnerModel,"InnerModel")
當頁面加載我看到:
爲什麼? MVC的錯誤?
更新: 這個真正的bug。 See
是的,我已經嘗試過了。這是有用的,但不是很漂亮。 – DeeRain
如果這是你經常做的事情,然後把它放到一個HTML助手中,那麼它會變得美麗:) –
你鏈接的頁面說「只有當這個lambda表達式是一個簡單的屬性訪問表達式」。我的lambda很簡單。我不明白爲什麼它不起作用。 – DeeRain