Я пробую asp.net mvc для нового проекта, и наткнулся на что-то странное. Когда я использую помощники MVC UI для текстовых полей, значения сохраняются между вызовами. Но когда я использую серию переключателей, проверенное состояние не сохраняется.
Вот пример с моей точки зрения.
<li>
<%=Html.RadioButton("providerType","1")%><label>Hospital</label>
<%=Html.RadioButton("providerType","2")%><label>Facility</label>
<%=Html.RadioButton("providerType","3")%><label>Physician</label>
</li>
Когда форма отправляется обратно, я создаю объект с «ProviderType» в качестве одного из его свойств. Значение на объекте устанавливается, и затем я RedirectToAction с поставщиком в качестве аргумента. Все хорошо, и я в итоге получаю URL-адрес типа "http://localhost/Provider/List?ProviderType=1" с отображением ProviderType. Значение сохраняется в URL-адресе, но помощник пользовательского интерфейса не получает проверенное состояние.
У меня проблема со списком, выпадающим списком и кнопкой радио. Текстовые поля подбирают значения просто отлично. Вы видите что-то, что я делаю не так? Я предполагаю, что помощники сделают это для меня, но, возможно, мне просто придется позаботиться об этом самостоятельно. Я просто чувствую свой путь через это, поэтому ваш вклад приветствуется.
Редактировать: Я только что нашел переопределение для конструктора SelectList, который принимает выбранное значение. Это решило мою проблему с раскрывающимся списком, о которой я упоминал выше.
Редактировать # 2: Я нашел что-то, что работает, но мне больно делать это таким образом. Я чувствую, что это должно быть выведено.
<li>
<%=Html.RadioButton("ProviderType","1",Request["ProviderType"]=="1")%><label>Hospital</label>
<%=Html.RadioButton("ProviderType", "2", Request["ProviderType"] == "2")%><label>Facility</label>
<%=Html.RadioButton("ProviderType", "3", Request["ProviderType"] == "3")%><label>Physician</label>
</li>
Надеюсь, кто-нибудь придумает другой путь.