以下是我目前在视图中调用助手的方式(使用Razor和C#):
@Html.ListBoxFor(m => m.Measures, new MultiSelectList(Model.Measures, "MsId"),
new Dictionary<string, object> { { "id", "measureId" } })
这可以很好地设置表单元素中的“id”但是当我尝试做这样的事情时:
@Html.ListBoxFor(m => m.Measures, new MultiSelectList(Model.Measures, "MsId"),
new Dictionary<string, object> { { "id", "measureId" }, { "name", "measureId" } })
生成的源代码仍然是:
<select id="measureId" multiple="multiple" name="Measures">
非常感谢任何帮助。
答案 0 :(得分:3)
该名称是从传递的Expression<Func<TModel, TProperty>>
参数生成的。传递的属性的名称是使用的,因此在您的情况m => m.Measures
中使用名称Measures
。这是为了在表单发布到操作时启用模型绑定。
您可以通过将属性名称更改为MeasuresId来更改名称值,或者如果不可能,则可以使用non typed version
@Html.ListBox("measureId", new MultiSelectList(Model.Measures, "MsId"));
答案 1 :(得分:1)
传入:
new { name= "yourname"}
表示ListBoxFor重载中的html属性