アプリケーション Web プロジェクトとは異なるアセンブリに宣言型 HTML ヘルパーを配置することは可能ですか?
現在、宣言型 HTML ヘルパーを配置できる唯一の場所は、アプリケーション Web プロジェクトの「App_Code」フォルダーです。
数か月の開発の後、これらの宣言型 html ヘルパーがたくさんあり、すべてのプロジェクトでそれを共有する必要がある唯一の解決策は、「コピー ペースト駆動型開発」という非常に悪い慣行を使用することです。
他の方法はありますか?
PS
宣言型 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
}