问题 C#和Razor - 未提供您请求的页面类型,因为它已被明确禁止。扩展名“.cshtml”可能不正确


我查看了其他帖子,但似乎没有人回答我的需要。

  • 我在WebMatrix(ASP.NET)中创建了一个空站点
  • 我在VWD 2013中打开了该网站
  • 我点击F5,它在一个URL上运行正常,如 http://local.com:59833/ContentPage.cshtml
  • 我去 http://local.com/cscsu_bi/ContentPage.cshtml 它不适用于下面的错误

    '/'应用程序中的服务器错误。

    不提供此类页面。

    描述:未提供您请求的页面类型,因为它已被明确禁止。扩展名“.cshtml”可能不正确。请查看下面的网址,确保拼写正确。

    请求的URL:/cscsu_bi/ContentPage.cshtml

  • web.config文件如下

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
    <add key="webpages:Enabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
</configuration>

我在Windows 7上。有什么明显的我做错了吗?

谢谢


10030
2018-03-07 10:48


起源

你试过吗? html 延期 ? - Ofiris
是的 - 404错误 - pee2pee
看起来你正试图导航到文件的物理路径,你必须使用虚拟路径(这是你列出的第一个) - Alex
在Razor(您的标记)中,您的控制器应该基于诸如的路径执行操作 /controllername/actioname/id。 cshtml文件用于控制器的视图,不能直接访问。您是否尝试使用cshtml文件,就好像它们是ASPX文件一样? - Gone Coding
asp.net/web-pages/tutorials/introducing-aspnet-web-pages-2/... 你可以直接访问它们 - pee2pee


答案:


我错过了 Microsoft.AspNet.WebPages NuGet包。安装它解决了我的问题。 (这个包依赖于 Microsoft.Web.Infrastructure 和 Microsoft.Web.Razor 因此包括他们)

如果您使用NuGet控制台,只需键入:

Install-Package Microsoft.AspNet.WebPages

7
2018-02-05 10:18



你的意思是 System.Web.Razor ? - AndrewRalon


我在许多机器上设置了Razor,并且经常发现我需要在我的bin文件夹中包含以下DLL:

  • System.Web.Razor.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll
  • Microsoft.Web.Infrastructure.dll

5
2017-09-25 02:34





看看这篇文章。

http://www.asp.net/web-pages/overview/more-resources/aspnet-web-pages-(razor)-troubleshooting-guide

这在修复了所有IIS设置和引用后修复了我的问题。

确保您网站的根目录中至少包含一个.cshtml文件。


1
2018-03-25 16:12





这可能不是您的确切问题,但我发生这种情况有几个原因:

  1. 服务器上的框架不正确:确保目标框架 项目由服务器支持。只是改变了 编译元素的targetFramework属性可能不是 足够的,因为您的项目的DLL可能会被编译 反对4.5框架。

  2. 应用程序池的框架不正确:如果,也可能发生这种情况 您的应用程序池未使用正确的.Net CLR版本。使 确定它使用的是4.0而不是2.0


1
2017-10-09 20:18





在我的情况下,罪魁祸首是Global.asax被置于'/ Views'文件夹下。当项目针对MVC3时,这在某种程度上起作用。一旦解决方案升级到MVC4,运行所述解决方案将导致上述错误。同样,其他错误会提到:

“没有设置默认网页,并且已禁用目录浏览”

解决方案:升级到MVC4 +之后,我不得不在容器项目的根文件夹下手动移动Global.asax。请务必检查Global.asax以确保其中应用的命名空间是正确的。只是我的2c。


1
2018-01-04 15:48





在我的情况下,我设置 webpages:Enabled 至 true 下 appSettings

<appSettings>
  <add key="webpages:Enabled" value="false" />
</appSettings>   

根据帖子: webpages的功能是什么:在MVC 3 web.config中启用,这可以防止从Web浏览器直接访问Views文件夹中的文件。


0
2017-08-14 15:22