我在我的项目中派生了mvc4 MultiSelectList类来实现ToMvcHtmlString方法。如何从MultiSelectList实例内部获取纯html?
public MvcHtmlString ToMvcHtmlString()
{
return ???;
}发布于 2015-11-11 13:18:16
您可以使用扩展方法HtmlHelper.ListBox来获取MvcHtmlString的一个实例(目前在视图中通常用作@Html.ListBox() )。
此扩展方法存在于HtmlHelper类的System.Web.Mvc.Html命名空间中。因此,您所需要做的就是创建如下方法:-从您的视图传入通常用作@Html的HtmlHelper实例-其中name是ListBox所需的参数(您可以将其传入,或将其硬编码在您的类中-最好将其传递到方法中)
public MvcHtmlString ToMvcHtmlString(HtmlHelper helper, String name) {
return helper.ListBox(name, this);
}然而,这样做违背了从您自己的类中返回纯MvcHtmlString的目的。因为您仍然需要传入视图中提供的HtmlHelper,这意味着您还可以使用以下代码来实现相同的功能:
@Html.ListBox(...)HtmlHelper是必需的,因为它需要访问视图,因为在构建/填充列表时可能需要额外的信息。
https://stackoverflow.com/questions/33562437
复制相似问题