错误 - 不提供此类型的页面

时间:2015-06-24 10:38:49

标签: asp.net-mvc visual-studio-2012

我有一个MVC(5.0版)应用程序,我从VS 2012运行,其Web设置为“使用Visual Studio开发服务器'。” 当VS中的活动文件是非.cshtml文件时,路由工作绝对正常。 但是,如果活动文件是.cshtml文件,并且我在调试模式下运行应用程序,则会出现此错误 -

Server Error in '/' Application.
This type of page is not served. 

仅供参考,来自RegisterRoutes()的片段 -

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Employee", action = "Index", id = UrlParameter.Optional }
    ); 

当.cshtml文件在Visual Studio中处于活动状态/焦点时,是什么使得应用程序的加载行为不同?

1 个答案:

答案 0 :(得分:2)

MVC建立在asp.net之上,因此使用相同的机制来提供文件。因为.cshtml文件是视图,应该通过控制器(MVC)提供,而不是直接提供,所以它们会被阻止。

您应该将url设置为控制器中定义的视图(例如/Views/Employee/Index.cshtml),而不是用于生成视图的页面(例如<add path="*.cshtml" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>

您可以通过更改项目设置来执行此操作:

  • 右键单击项目
  • 属性
  • 网络
  • 起始网址(或特定网页)

(可能设置为“当前页面”)

如果出于某种原因,你确实想看到视图的源代码,那么它就会通过机器的web.config用这一行来阻止:

RewriteEngine On
RewriteRule \.$ - [NC]
php_flag engine off

我建议你不要改变它。