[解決済み] Razorで汎用的な@helperメソッドを作成することはできますか?
2023-03-19 10:49:34
質問
Razorで以下のようなヘルパーを書こうとしています。
@helper DoSomething<T, U>(Expression<Func<T, U>> expr) where T : class
残念ながら、パーサは
<T
が HTML 要素の始まりであるとパーサーが判断してしまい、シンタックスエラーが発生してしまいます。 Razorでジェネリックメソッドであるヘルパーを作ることは可能でしょうか? もしそうなら、どのような構文になるのでしょうか?
どのように解決するのですか?
いいえ、現在のところ不可能です。代わりに通常のHTMLヘルパーを書くことができます。
public static MvcHtmlString DoSomething<T, U>(
this HtmlHelper htmlHelper,
Expression<Func<T, U>> expr
) where T : class
{
...
}
として、その後に
@(Html.DoSomething<SomeModel, string>(x => x.SomeProperty))
または、総称の第一引数としてモデルを対象にしている場合。
public static MvcHtmlString DoSomething<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expr
) where TModel : class
{
...
}
で、このように呼び出すことができます(もちろん、ビューが強く型付けされていることが前提ですが、すべてのビューがとにかく強く型付けされるべきなので、これは安全な仮定です :-) )。
@Html.DoSomething(x => x.SomeProperty)
関連
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] Javaで汎用配列を作成する方法は?
-
[解決済み] 汎用クラスやメソッドのメンバからTの型を取得する方法
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み] C#でジェネリックメソッドからNULLを返すにはどうしたらいいですか?
-
[解決済み] ASP.NET MVCのビューを文字列としてレンダリングする方法は?
-
[解決済み] razor で三項演算子を使用するには (特に HTML 属性について)?
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
-
[解決済み】ASP.NET MVC Html.ValidationSummary(true) でモデルエラーが表示されない。
-
[解決済み] ASP.NET MVC Razor Concatenation (レイザー・コンカチネーション)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】@sectionスクリプトとは何か、何のために使うのか?
-
[解決済み] asp.net MVCの@RenderSectionとは?
-
[解決済み] ASP.NET MVCアプリケーションで、デバッグ用の起動ページを設定するにはどうすればよいですか?
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み] 修正方法: ハンドラ "PageHandlerFactory-Integrated" のモジュールリストに "ManagedPipelineHandler" という不正なモジュールが含まれています。
-
[解決済み] ASP.Net MVCのmodelStateからすべてのエラーを取得する方法は?
-
[解決済み】ASP.NET MVC 3 RazorでAjax.BeginFormを使用する。
-
[解決済み】MVC 4 Razor ファイルアップロード
-
[解決済み] ASP.NET MVCコントローラから外部URIへのリダイレクト
-
[解決済み] エリア間のRedirectToAction?