如何从MultiSelectList返回MvcHtmlString

本文关键字:返回 MvcHtmlString MultiSelectList | 更新日期: 2023-09-27 18:20:59

我在项目中派生了mvc4 MultiSelectList类来实现ToMvcHtmlString方法。如何从MultiSelectList实例内部获取纯html?

public MvcHtmlString ToMvcHtmlString()
        {
            return ???;
        }

如何从MultiSelectList返回MvcHtmlString

您可以使用Extension方法HtmlHelper.ListBox来获取MvcHtmlString的一个实例(目前在View中通常用作@Html.ListBox())。

此扩展方法存在于HtmlHelper类的System.Web.Mvc.Html命名空间中。因此,您所需要做的就是创建如下方法:-从视图传入HtmlHelper实例,通常用作@Html-其中name是ListBox所需的参数(您可以将其传入,也可以在类中对其进行硬编码,最好将其传入方法)

    public MvcHtmlString ToMvcHtmlString(HtmlHelper helper, String name) {
        return helper.ListBox(name, this);
    }

然而,这样做会破坏从您自己的类中返回纯MvcHtmlString的目的。因为您仍然需要传入视图中可用的HtmlHelper,这意味着您还可以使用以下代码来实现同样的目的:

@Html.ListBox(...)

HtmlHelper是必要的,因为它需要访问视图,因为在构建/填充列表时可能需要其他信息。