5

アプリケーション 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   
}

ここに画像の説明を入力

4

3 に答える 3

2

これらのヘルパーのクラス ライブラリを作成し、それをプロジェクト間で共有します。ヘルパーをカスタム作成フォルダーに配置すると、より効果的ですHelpers。これが私がすることです。

この回答を参照できます: ASP.NET MVC3 アプリケーションでユーティリティ クラスをどこに配置しますか?

于 2013-03-11T18:51:41.413 に答える
-1

HTML ヘルパー ライブラリを作成するために必要な手順を紹介する記事を書きました。最後に、GitHub からダウンロードできる完全なプロジェクトの例があります。

https://www.simple-talk.com/dotnet/asp.net/writing-custom-html-helpers-for-asp.net-mvc/

于 2013-03-11T20:51:31.297 に答える