为什么MVC ViewEngine不能通过MvcHtmlStrings数组进行迭代?

时间:2019-02-16 20:06:01

标签: c# asp.net-mvc razor asp.net-mvc-5.2

我在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[]

现在我的问题是“我该如何解决-我可以自定义视图引擎以像预期的那样(我假设)遍历此数组吗?”

0 个答案:

没有答案