是否可以将声明性html助手放在与应用程序Web项目不同的程序集中?
目前,我知道我可以放置声明性html助手的唯一地方是我的应用程序Web项目的“App_Code”文件夹。
经过几个月的开发,我现在有很多这些声明性的html帮助器,我在所有项目中共享它的唯一解决方案是使用'Copy Paste Driven Development'的非常糟糕的做法。 / p>
还有其他方法吗?
P.S。
不要对什么是声明性html助手的定义感到困惑,这里是一个代码示例,与扩展System.Web.Mvc.Html类型的c#扩展相比有所不同:
@using Microsoft.Web.Mvc.Html
@helper YesNoRadioButton(System.Web.Mvc.HtmlHelper html, string name, bool value, bool disable = false)
{
@html.RadioButton(name, true, value, id: name.Replace(".", "_") + "_Yes", disabled: disable) @:Oui
@html.RadioButton(name, false, !value, id: name.Replace(".", "_") + "_No", disabled: disable) @:Non
}
@helper YesNoRadioButton(System.Web.Mvc.HtmlHelper html, string name, bool? value, bool disable = false)
{
@html.RadioButton(name, true, value.HasValue && value.Value, id: name.Replace(".", "_") + "_Yes", disabled: disable) @:Oui
@html.RadioButton(name, false, value.HasValue && !value.Value, id: name.Replace(".", "_") + "_No", disabled: disable) @:Non
}
答案 0 :(得分:2)
创建这些帮助程序的类库,然后在项目之间共享它。如果将帮助程序放在自定义创建的文件夹Helpers
中,将会更好。这就是我的工作。
您可以参考以下答案:Where shall I put my utilities classes in a ASP.NET MVC3 application?
答案 1 :(得分:0)
是的,有可能,我要做的只是将@using
放在剃须刀页面的顶部,以引用其他具有Helper功能的程序集。
或者,如果您想保存自己将using
添加到许多文件的顶部,则可以将引用添加到Views文件夹下存在的Web.config文件中。您可能必须关闭并重新打开剃须刀页面才能帮助Visual Studio确认新的程序集引用。
答案 2 :(得分:-1)
我写了一篇文章,带您了解制作HTML帮助程序库所需的步骤。最后有一个完整的项目示例,您可以从GitHub下载。
https://www.simple-talk.com/dotnet/asp.net/writing-custom-html-helpers-for-asp.net-mvc/