Asp.net mvc ASP.NET MVC-我如何构建一个不';不需要用MvcHtmlString包装?

Asp.net mvc ASP.NET MVC-我如何构建一个不';不需要用MvcHtmlString包装?,asp.net-mvc,razor,mvchtmlstring,Asp.net Mvc,Razor,Mvchtmlstring,当我使用内置Html帮助程序时,我可以简单地编写以下内容 @Html.Actionlink(bla) 但是,当我编写自己的Html助手时,我需要通过将其包装在MvcHtmlString @MvcHtmlString.Create(Html.CustomPager(bla)) 在扩展方法中有什么我可以做的,这样我就不必担心“不”编码了吗?是的,您可以让助手返回一个MvcHtmlString-即: public static MvcHtmlString Css(this HtmlHelper h

当我使用内置Html帮助程序时,我可以简单地编写以下内容

@Html.Actionlink(bla)
但是,当我编写自己的Html助手时,我需要通过将其包装在
MvcHtmlString

@MvcHtmlString.Create(Html.CustomPager(bla))

在扩展方法中有什么我可以做的,这样我就不必担心“不”编码了吗?

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

public static MvcHtmlString Css(this HtmlHelper html, string path)
{
    return MvcHtmlString.Create(/* some code*/);
}
而不是:

public static string Css(this HtmlHelper html, string path)
{
    return (/* some code*/);
}

我不知道剃须刀的要求,所以这可能是一个盲目的暗箭伤人的回答。

对不起,我留下了一个回复,但意识到这可能是剃须刀语法特定的,所以删除是的,这是剃须刀。在WebForms中,您可以使用
这是一个很大的痛苦,我正在考虑返回WebForms视图引擎,而不是Razor.reinstigated-只是为了它的h3ll:)为什么?一旦你学会了razor的一些怪癖,它就不会在每次你想切换到服务器代码的时候强迫你去写,从而为你节省了很多写代码的时间,并且让你的代码更容易阅读。我不知道这一切是如何结合在一起的,尽管它有着完美的意义。是的,一个关于所有这些比特如何相关的流程图会很有帮助:)marc-特别是帮助程序之间的接口和视图上的各种接口。i、 e.地板上的工具接近