Dee*_*ain 1 asp.net-mvc mvc-editor-templates html.dropdownlistfor asp.net-mvc-3
我有简单的测试模型:
public class MyModel
{
public InnerModel InnerModel { get; set; }
}
public class InnerModel
{
public int Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在控制器中:
public ActionResult Index()
{
var model = new MyModel();
model.InnerModel = new InnerModel { Value = 3 };
return View("MyModelView", model);
}
Run Code Online (Sandbox Code Playgroud)
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")
Run Code Online (Sandbox Code Playgroud)
页面加载时我看到所选项目:
很好.
但是如果我添加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")
Run Code Online (Sandbox Code Playgroud)
并更改MyModelView:
@model MyModel
@Html.EditorFor(m=>m.InnerModel,"InnerModel")
Run Code Online (Sandbox Code Playgroud)
当页面加载时,我看到:
为什么?MVC错误?
更新: 这个真正的错误.看到
在创建选择项列表时,请尝试此操作:
var items = new SelectList(
new[]
{
new { Value = "1", Text = "one" },
new { Value = "2", Text = "two" },
new { Value = "3", Text = "three" },
},
"Value",
"Text",
Model.Value
)
Run Code Online (Sandbox Code Playgroud)
以下是对此发生原因的解释:https://stackoverflow.com/a/11045737/486434
归档时间: |
|
查看次数: |
3600 次 |
最近记录: |