Я пытаюсь использовать 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-адресе, но вспомогательный пользовательский интерфейс не поднимает проверенное состояние.
У меня возникает эта проблема со списком, dropdownlist и радиобутом. Текстовые поля отлично подбирают значения. Вы видите что-то, что я делаю неправильно? Я предполагаю, что помощники сделают это для меня, но, возможно, мне просто придется позаботиться об этом самостоятельно. Я просто чувствую свой путь через это, поэтому ваш вклад приветствуется.
Изменить: Я только что нашел переопределение для конструктора 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>
Надеюсь, кто-то придумает другой способ.