Как изменить значение идентификатора при использовании помощника Html.DropDownListFor в asp.net mvc 2.0? - PullRequest
17 голосов
/ 16 мая 2010

У меня есть частичное представление, которое имеет что-то вроде этого

 <%= Html.DropDownListFor(m => m.SelectedProductName, Model.ProductList, "Select a Product") %>

Теперь вы можете создавать новый продукт и редактировать существующий продукт. И редактирование, и создание используют одну и ту же форму. Создание находится на главной странице при загрузке. Правка появляется в диалоговом окне модели jQuery UI и отображает новое частичное представление.

Итак, что касается страницы, у меня есть 2 выпадающих списка с одинаковым идентификатором, что плохо, поскольку они должны быть уникальными. Так как мне изменить идентификатор? Поэтому, когда редактирование загружается, оно может иметь идентификатор "editSelectedProductName"?

Я пытался сделать это в виде модели

public string SelectedProductName{ get; set; }

ViewModelConstructor()
{
  SelectedProductName = "EditSelectedProductName";
}

Но, похоже, это не волнует и продолжает использовать «SelectedProductName» в качестве названия продукта

Ответы [ 2 ]

35 голосов
/ 16 мая 2010

В данный момент я не могу найти документацию, но существует перегрузка для DropDownListFor, которая принимает коллекцию атрибутов объектного типа (HtmlAttributes - это имя параметра.)

Это будет выглядеть примерно так:

Html.DropDownListFor(model=>model.SomeProperty, new {@id="UniqueID1234"});

Вы можете использовать Intellisense, чтобы найти перегрузку, включающую HtmlAttributes.

1 голос
/ 18 апреля 2012

Вы можете использовать жестко закодированный JQuery:

$('select#[id of your select box]').attr('id', '[id that you want]');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...