当前位置:  开发笔记 > 后端 > 正文

未找到Razor HtmlHelper Extensions(或其他视图命名空间)

如何解决《未找到RazorHtmlHelperExtensions(或其他视图命名空间)》经验,为你挑选了4个好方法。

Dunno如果在PR或Beta中发生这种情况,但如果我创建了一个扩展方法HtmlHelper,则在Razor驱动的页面中无法识别:

namespace SomeNamespace.Extensions {
    public static class HtmlExtensions {
        public static string Foo(this HtmlHelper html) {
            return "Foo";
        }
    }
}

我把它添加到以下部分Web.config:


  
    
    
    
  

但是在尝试查看页面时会抛出编译错误:

@Html.Foo()

如果我使用WebForms重新创建页面,它可以正常工作.这是怎么回事?

解决方法

如果我@using SomeNamespace.Extensions在我的Razor视图中包含它,那么它可以工作,但我更愿意将它包含在内Web.config



1> marcind..:

自Beta版以来,Razor使用不同的配置部分来全局定义命名空间导入.在您的Views\Web.config文件中,您应添加以下内容:


  
    

使用MVC 3升级工具自动确保您拥有正确的配置值.

请注意,您可能需要关闭并重新打开文件,以便编辑器选择更改.


+1告诉我打开和关闭文件以查看更新.
感谢您指出这不是根web.config,而是View文件夹中的web.config!
我不得不添加对> System.Web.WebPages.Razor的引用,并将其排序.
它不适合我.我正在使用MVC 3 RC,我将我的命名空间添加到了我的views文件夹中的web.config.仍然无法在Razor页面中看到我的扩展程序.放置@using 的事件不起作用.@TWith2Sugars我甚至找不到System.Web.WebPages.Razor添加,我添加了System.Web.Razor但没有帮助.我真的被困在这里了

2> Paul Rowland..:

由于接受的答案建议您可以通过添加到配置文件的部分为所有视图添加"使用".

但是对于单个视图,您可以使用

@using SomeNamespace.Extensions



3> John Rasch..:

我在使用Razor的MVC 4应用程序中遇到了同样的错误.为了清理web.config文件,我删除了两个webpages:配置值:


  
  

一旦我恢复了这些配置值,页面就会正确编译,并且有关.Partial()扩展方法的错误消失了.



4> Damian Green..:

我在VS 2015中遇到过这个问题.以下内容为我解决了这个问题:

在appsettings中找到"webpages:Version"并将其更新到3.0.0.0版.我的web.config了


我把它更新到了


推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有