Как мне установить атрибут name в множественном списке, созданном с использованием LIstBoxFor и MultiSelectList в Asp.net MVC 3? - PullRequest
3 голосов
/ 09 мая 2011

Вот как я в данный момент вызываю помощника в моем представлении (используя 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">

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

Имя генерируется из переданного параметра Expression<Func<TModel, TProperty>>.Используется имя переданного свойства, поэтому в вашем случае m => m.Measures используется имя Measures.Это необходимо для того, чтобы привязка модели работала, когда ваша форма публикуется в действии.

Можно изменить значение имени, изменив имя свойства на MeasuresId или, если это невозможно, вы можете использовать нетипизированныйверсия

@Html.ListBox("measureId", new MultiSelectList(Model.Measures, "MsId"));
1 голос
/ 09 мая 2011

пройти в:

new { name= "yourname"}

для ваших атрибутов html в перегрузке ListBoxFor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...