我想创建一个剃刀网络助手是这样的:

@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