【问题标题】:ASP.Net MVC 3 - Html ExtensionsASP.Net MVC 3 - Html 扩展
【发布时间】:2010-07-31 16:46:45
【问题描述】:

我正在使用 Razor + MVC 3 并且有一个非常简单的场景...基本上我正在尝试创建一个非常基本的 HTML 帮助程序,但我遇到了以下异常:

'System.Web.Mvc.HtmlHelper' 不包含定义 'ScriptCss' 并且没有扩展方法 'ScriptCss' 接受第一个参数 类型 'System.Web.Mvc.HtmlHelper' 可以找到(您是否缺少 使用指令或程序集 参考?)

扩展的代码如下所示:

    public static MvcHtmlString ScriptCss(this HtmlHelper htmlHelper, string path)
    {
        return MvcHtmlString.Create(String.Format("<link rel=\"stylesheet\" type=\"text/css\" href=\"{0}\" />", path));
    }

有什么想法可以解决我的问题吗?

干杯 安东尼

【问题讨论】:

    标签: .net razor asp.net-mvc-3 htmlextensions


    【解决方案1】:

    我会检查几件事,你呢

    a) 确保扩展方法的父类是公开的?

    和 b) 导入您各自的命名空间:

     @using MyNamespace;
    

    【讨论】:

    • 嘿伙计们...原来 web.config 中的命名空间部分不受支持...这是有道理的,因为它不使用 asp.net 视图引擎...会很有趣看看他们如何处理 Razor 中的要求
    • web.config 中的命名空间部分用于配置 ASPX 解析器和代码生成器。如果我们在 Razor 中按原样使用它,我们会得到一堆额外的命名空间,例如导入的 System.Web.UI,这些在 Razor 中是无用的。我们将在未来的版本中为 Razor 添加一个新的 web.config 部分。到目前为止,请参阅 Stacker 关于全局导入的 CodeGeneratorSettings 的回答。
    【解决方案2】:

    根据这篇帖子的回答,http://forums.asp.net/p/1583383/3995794.aspx

    你可以使用:

    CodeGeneratorSettings.AddGlobalImport("MyNamespace");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 2010-10-29
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多