14

私は次のようなRazorWebヘルパーを作成しようとしています:

@helper DisplayForm() {    
    @Html.EditorForModel();    
}

しかし、これはエラーになります"CS0103: The name 'Html' does not exist in the current context"

Webヘルパー内でHTMLヘルパーを参照する方法はありますか?

4

3 に答える 3

23

静的Pageプロパティをコンテキストから正しいタイプにキャストできます。

@helper MyHelper() {
    var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;

    Html.RenderPartial("WhatEver");
    @Html.EditorForModel();
}
于 2010-11-25T14:31:35.553 に答える
4

Razorの宣言型ヘルパーは静的メソッドです。Htmlヘルパーを引数として渡すことができます。

@helper DisplayForm(HtmlHelper html) {
    @html.EditorForModel(); 
}

@DisplayForm(Html)
于 2010-10-27T16:08:33.673 に答える
1

RazorインラインWebHelperは静的メソッドを生成します。

そのため、インスタンスメンバーにアクセスできません。

@helper DisplayForm(HtmlHelper html){
    @html.DisplayForModel()
}

これはどう?

于 2010-10-27T16:03:42.640 に答える