我在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
仅返回以下 text :
System.Web.Mvc.MvcHtmlString[]
@Html.RadioButtonList
扩展方法来自nuget包,方法签名为
Microsoft.AspNet.Mvc.Futures
DropDownList扩展方法的签名为:
public static MvcHtmlString[] RadioButtonList(this HtmlHelper htmlHelper,
string name, IEnumerable<SelectListItem> selectList)
在我看来,视图引擎正在使用从public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper,
string name, IEnumerable<SelectListItem> selectList)
返回的MvcHtmlString
并在其上调用DropDownList
-很好-在它调用ToString()
时从ToString()
返回的MvcHtmlString
array 上,它返回的正是我所期望的-数组上的RadioButtonList
调用只是将类型名称作为字符串返回。
似乎ToString()
人们希望视图引擎遍历Futures
的内容,而不仅仅是调用MvcHtmlString[]
。
现在我的问题是“我该如何解决-我可以自定义视图引擎以像预期的那样(我假设)遍历此数组吗?”