如何隐藏标准(现有)HtmlHelper

时间:2010-11-11 12:05:13

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

我创建了一组自定义HtmlHelper扩展。

我想知道是否可以阻止同一项目中的其他开发人员使用标准的HtmlHelper。

例如:说,我有..

public static string CustomDropDown(this HtmlHelper html)
{
   //Custom code here
}

我只希望开发人员看到<% Html.CustomDropDown(..)%>,而不是标准<% Html.DropDownList(..)%>或其任何重载。

任何人都有任何线索,如果这是可能的以及如何?

5 个答案:

答案 0 :(得分:3)

请考虑使用EditorTemplates和/或DisplayTemplates。 这样,您的所有开发人员需要做的就是始终调用

Html.EditorFor(model => model.MySpecialProperty);

Html.DisplayFor(model => model.MySpecialProperty);

答案 1 :(得分:1)

为什么不告诉他们?

“嘿,伙计们,这些定制助手要好得多,你应该使用它们。”

如果您有管理支持,这应该不是问题。

答案 2 :(得分:0)

我怀疑是否有任何故障保护解决方案,也许这不是一件非常明智的事情......

但你可以考虑取出

<add namespace="System.Web.Mvc" />

在web.config中的部分。

答案 3 :(得分:0)

ASP.NET MVC是一个开放项目 - 您可以下载源代码并从HtmlHelper类中手动删除一些方法,重建并向开发人员提供此库。

答案 4 :(得分:0)

你能不能只重构你的代码?

public class CustomControls
{
    private readonly HtmlHelper _helper;
    public CustomControls(HtmlHelper helper)
    {
       _helper = helper;

    }

    public static string DropDown()
    {
       //Custom code here
    }
 }

 public CustomControls CustomControls(this HtmlHelper helper)
 {
    return new CustomControls(helper);
 }

用法:

<%:  Html.CustomControls().DropDown()  %>