ASP.NET MVC - 如何构建一个不需要在MvcHtmlString中包装的HtmlHelper?

Cha*_*ell 2 asp.net-mvc razor mvchtmlstring

当我在Html Helpers中使用构建时,我可以简单地编写以下内容.

@Html.Actionlink(bla)
Run Code Online (Sandbox Code Playgroud)

但是当我编写自己的Html Helpers时,我需要通过将其包装在一个中来阻止编码 MvcHtmlString

@MvcHtmlString.Create(Html.CustomPager(bla))
Run Code Online (Sandbox Code Playgroud)

我可以在扩展方法中做些什么,这样我就不用担心"不"编码吗?

jim*_*lan 5

是的,你可以让助手返回一个MvcHtmlString - 即:

public static MvcHtmlString Css(this HtmlHelper html, string path)
{
    return MvcHtmlString.Create(/* some code*/);
}
Run Code Online (Sandbox Code Playgroud)

而不是:

public static string Css(this HtmlHelper html, string path)
{
    return (/* some code*/);
}
Run Code Online (Sandbox Code Playgroud)

我不知道剃须刀的要求,所以这可能是一个盲目刺痛的黑暗答案.