我在我的项目中分叉了mvc4 MultiSelectList类来实现ToMvcHtmlString方法。如何从MultiSelectList实例中获取纯HTML?
public MvcHtmlString ToMvcHtmlString()
{
return ???;
}
答案 0 :(得分:1)
您可以使用Extension方法HtmlHelper.ListBox来获取MvcHtmlString的一个实例(通常在今天的视图中用作@ Html.ListBox())。
此扩展方法存在于HtmlHelper类的System.Web.Mvc.Html命名空间中。 因此,您需要做的就是创建如下方法: - 从您的View中传入HtmlHelper实例,通常用作@Html - 其中name是ListBox所需的参数(要么你可以传入它,要么在你的类中硬编码 - 最好将它传递给方法)
public MvcHtmlString ToMvcHtmlString(HtmlHelper helper, String name) {
return helper.ListBox(name, this);
}
然而,这样做会破坏从您自己的类中返回纯MvcHtmlString的目的。因为你仍然需要传入View中可用的HtmlHelper,这意味着你也可以使用以下代码来实现同样的目的:
@Html.ListBox(...)
HtmlHelper是必要的,因为它需要访问View,因为这可能包含构建/填充List所需的其他信息。