RadioButtonList исключение - PullRequest
       12

RadioButtonList исключение

4 голосов
/ 18 октября 2008

После обновления до бета-версии у меня возникают проблемы с Html.RadioButtonList Может кто-нибудь показать мне, что я делаю не так?

код:

<% Html.RadioButtonList(
    "voter" + voter.Id,
    new SelectList(new[]{"yes","no","abstain"}, "yes")).Each(x => Response.Write(x)); %>

И я получаю исключение:

[ArgumentNullException: Value cannot be null.
Parameter name: value]
   System.Web.Mvc.Html.InputExtensions.RadioButton(HtmlHelper htmlHelper, String name, Object value, Boolean isChecked, IDictionary`2 htmlAttributes) +214
   Microsoft.Web.Mvc.<>c__DisplayClass1.<RadioButtonListInternal>b__0(ListItem item) in c:\dd\Cicero\src\Mvc\main\src\MvcFutures\Mvc\RadioExtensions.cs:86
   System.Linq.WhereSelectListIterator`2.MoveNext() +107
   System.Linq.Buffer`1..ctor(IEnumerable`1 source) +259
   System.Linq.Enumerable.ToArray(IEnumerable`1 source) +81
   Microsoft.Web.Mvc.RadioListExtensions.RadioButtonListInternal(HtmlHelper htmlHelper, String name, SelectList selectList, Boolean usedViewData, IDictionary`2 htmlAttributes) in c:\dd\Cicero\src\Mvc\main\src\MvcFutures\Mvc\RadioExtensions.cs:88
   Microsoft.Web.Mvc.RadioListExtensions.RadioButtonList(HtmlHelper htmlHelper, String name, SelectList selectList) in c:\dd\Cicero\src\Mvc\main\src\MvcFutures\Mvc\RadioExtensions.cs:29

Заранее большое спасибо!
Роб

1 Ответ

4 голосов
/ 18 октября 2008

Похоже, вы, возможно, нашли ошибку в инфраструктуре MVC. Другие перегрузки RadioButtonList, кажется, работают просто отлично, но это специфические перегрузки перегрузки.

Глядя на Reflector (и используя трассировку стека), я вижу, что в этой строке все идет не так:

    return selectList.GetListItems().Select<ListItem, string>(delegate (ListItem item) {
    return htmlHelper.RadioButton(name, item.Value, item.Selected, htmlAttributes);
}).ToArray<string>();

В методе Microsoft.Web.Mvc.RadioListExtensions.RadioButtonListInternal. Я полагаю, этот код работал в Preview 5?

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