У меня есть следующее в EditorTemplate`:
@{
var items = new List<SelectListItem>
{
new SelectListItem
{ Text = "one", Value = "one" },
new SelectListItem
{ Text = "two", Value = "two" },
new SelectListItem
{ Text = "3", Value = "3" },
};
}
@Html.DropDownList("somename", items)
@Html.RadioButtonList("somename", items)
@Html.DropDownList
возвращает выпадающий список, как я и ожидал, но @Html.RadioButtonList
просто возвращает следующий текст :
System.Web.Mvc.MvcHtmlString[]
Метод расширения @Html.RadioButtonList
взят из пакета nuget Microsoft.AspNet.Mvc.Futures
, а сигнатура метода
public static MvcHtmlString[] RadioButtonList(this HtmlHelper htmlHelper,
string name, IEnumerable<SelectListItem> selectList)
, тогда как сигнатура метода расширения DropDownList:
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper,
string name, IEnumerable<SelectListItem> selectList)
Мне кажется, что механизм просмотра берет MvcHtmlString
, возвращенный из DropDownList
, и вызывает ToString()
для этого - что прекрасно работает - но когда он вызывает ToString()
для MvcHtmlString
массив , возвращаемый из RadioButtonList
, он возвращает именно то, что я ожидал - вызов ToString()
для массива просто возвращает имя типа в виде строки.
Это похоже на Futures
люди ожидали, что механизм просмотра будет перебирать содержимое MvcHtmlString[]
, а не просто вызывать ToString()
.
Теперь мой вопрос: «Как я могу это исправить - могу ли я настроить механизм просмотра для перебораэтот массив, как (я предполагаю) они ожидали? "