代码之家  ›  专栏  ›  技术社区  ›  Craig

在Razor web助手中使用html助手

  •  14
  • Craig  · 技术社区  · 15 年前

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

    但这就产生了错误 "CS0103: The name 'Html' does not exist in the current context"

    有没有办法在web helpers中引用html helpers?

    3 回复  |  直到 12 年前
        1
  •  22
  •   GvS    15 年前

    可以将静态页属性从上下文强制转换为正确的类型:

    @helper MyHelper() {
        var Html = ((System.Web.Mvc.WebViewPage)WebPageContext.Current.Page).Html;
    
        Html.RenderPartial("WhatEver");
        @Html.EditorForModel();
    }
    
        2
  •  4
  •   Darin Dimitrov    15 年前

    Razor中的声明性帮助程序是静态方法。可以将Html助手作为参数传递:

    @helper DisplayForm(HtmlHelper html) {
        @html.EditorForModel(); 
    }
    
    @DisplayForm(Html)
    
        3
  •  1
  •   takepara    15 年前

    因此无法访问实例成员。

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