如何从MultiSelectList返回MvcHtmlString

时间:2015-11-06 08:28:10

标签: c# asp.net-mvc-4 html-helper

我在我的项目中分叉了mvc4 MultiSelectList类来实现ToMvcHtmlString方法。如何从MultiSelectList实例中获取纯HTML?

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

1 个答案:

答案 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所需的其他信息。