c# - MVC3 - 组 Html 帮助器扩展

标签 c# asp.net-mvc-3 html-helper

我想对我的 html 助手进行分组,以便我可以在我的 View 中编写如下简单的内容:

@Html.SubGroup.MyCustomHelper("Hellow World")

而不是:

@Html.MyCustomHelper("Hellow World")

看来我无法在用于所有助手的 HtmlExtensions 类中嵌套静态类。

有什么建议吗?

最佳答案

您不能执行@Html.SubGroup.MyCustomHelper("..."),因为不存在“扩展属性”这样的东西,并且您无法控制HtmlHelper 静态类。

但是您可以使用额外的括号作为扩展方法来执行@Html.SubGroup().MyCustomHelper("...")

public static class MyHtmlHelpers
{
    public static MyHelpers SubGroup(this HtmlHelper helper)
    {
        return new MyHelpers(helper);
    }
}

public class MyHelpers
{
    public HtmlHelper Helper { get; private set; }

    public MyHelpers(HtmlHelper helper)
    {
        this.Helper = helper;
    }

    public MvcHtmlString MyCustomHelper(string someArgument)
    {
        return MvcHtmlString.Create(someArgument);
    }
}

关于c# - MVC3 - 组 Html 帮助器扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840925/

相关文章:

c# - 将匿名类型添加到 Enumerable<TSource>

c# - 为什么\r\n 添加到我的字符串中?

c# - 无法动态调度 Html.ActionLink

c# - 仅在编辑行完成后才允许添加下一行

c# - 匹配 wwR ("acddca” ) 在 C# 中使用正则表达式示例

json - ASP.Net MVC3 JSON 到模型

asp.net-mvc - Url.Action(action,controller,routeValues) 将 URL 中的 ID 加倍

asp.net-mvc - ASP.NET MVC : Is a helper allowed to grab data?

c# - 模型容器内的一个 View 和多个模型

c# - WinRT XAML 并以编程方式将焦点设置到 TextBox - 为什么焦点不固定?