我创建了一组自定义HtmlHelper扩展。
我想知道是否可以阻止同一项目中的其他开发人员使用标准的HtmlHelper。
例如:说,我有..
public static string CustomDropDown(this HtmlHelper html)
{
//Custom code here
}
我只希望开发人员看到<% Html.CustomDropDown(..)%>
,而不是标准<% Html.DropDownList(..)%>
或其任何重载。
任何人都有任何线索,如果这是可能的以及如何?
答案 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() %>