asp.net-mvc - 如何在 Asp.net MVC 3 中使用 LIstBoxFor 和 MultiSelectList 生成的多选列表框上设置名称属性?

标签 asp.net-mvc asp.net-mvc-3 razor

以下是我当前在我的 View 中调用助手的方式(使用 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">

任何帮助将不胜感激。

最佳答案

该名称是从 Expression<Func<TModel, TProperty>> 生成的参数已传递。在您的情况下使用传递的属性的名称 m => m.Measures名称Measures用来。这是为了在您的表单发布到操作时启用模型绑定(bind)。

您可以通过将属性名称更改为 MeasuresId 来更改名称值,或者如果不可能,您可以使用 non typed version

@Html.ListBox("measureId", new MultiSelectList(Model.Measures, "MsId"));

关于asp.net-mvc - 如何在 Asp.net MVC 3 中使用 LIstBoxFor 和 MultiSelectList 生成的多选列表框上设置名称属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5941168/

相关文章:

asp.net - 重构默认 MVC3 项目目录和 NuGet

jquery - 如何在 MVC3 Ajax.ActionLink OnBegin、OnComplete 事件中使用 $(this)

c# - Request.ServerVariables 抛出 NullReferenceException

asp.net - 如何使用 MVC 4 和 View 模型(强类型)呈现一组复选框

c# - 在@html.textboxFor 中传递额外的属性 - ASP.NET

.net - 基于分层菜单生成 Orchard CMS Autoroutes

asp.net-mvc - 如何让 MvcBuildViews 在出错时继续其他 View ?

c# - Azure 媒体服务 - 生成新的 AES 加密 token 用于播放

asp.net-mvc - ASP.net Web API : Why are controllers created per request?

asp.net - 最佳方法 : Mutliple content place holders in MVC