簡體   English   中英

如何在Asp.net MVC 3中使用LIstBoxFor和MultiSelectList生成的多選列表框上設置name屬性?

[英]How do I set the name attribute on a multiselect listbox generated using LIstBoxFor and MultiSelectList in Asp.net MVC 3?

以下是我目前在視圖中調用幫助程序的方法(使用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 這是為了在表單發布到操作時啟用模型綁定。

您可以通過將屬性名稱更改為MeasuresId來更改名稱值,或者如果不可能,則可以使用非類型版本

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

傳入:

new { name= "yourname"}

對於ListBoxFor的重載中的html屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM