質問

私はこのようなカミソリウェブヘルパー何かを作成しようとしています。

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

しかし、これはエラー"CS0103: The name 'Html' does not exist in the current context"を与えます。

ウェブヘルパー内の参照用HTMLヘルパーにどのような方法がありますか?

役に立ちましたか?

解決

あなたは正しい型に文脈から静的なページプロパティをキャストすることができます

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

    Html.RenderPartial("WhatEver");
    @Html.EditorForModel();
}

他のヒント

カミソリでの宣言型ヘルパーは静的メソッドです。あなたは、引数としてHTMLヘルパーを渡すことができます:

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

@DisplayForm(Html)

かみそりインラインWebHelper静的メソッドが生成されます。

だから、できないアクセスインスタンスメンバます。

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

これはどう?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top