Asp.net mvc 3 ASP.NETMVC3+;视图文件夹+;ASPX查看页面

Asp.net mvc 3 ASP.NETMVC3+;视图文件夹+;ASPX查看页面,asp.net-mvc-3,crystal-reports,views,viewpage,Asp.net Mvc 3,Crystal Reports,Views,Viewpage,我正在使用ASP.NET MVC 3框架开发一个web应用程序。 我已经实现了一个包含CrystalReportViewer控件的ASPX ViewPage。 我通过查看可在以下网站下载的项目获得了帮助: 以下是加载我的ASPX ViewPage的操作序列: 调用控制器的操作方法 将重定向到ASPX ViewPage 我的ASPX ViewPage位于名为AspNetForms的文件夹中。 文件夹AspNetForms位于我的项目根目录下 我做了个测试。 我已将AspNetForms文件夹移动到

我正在使用ASP.NET MVC 3框架开发一个web应用程序。
我已经实现了一个包含CrystalReportViewer控件的ASPX ViewPage。
我通过查看可在以下网站下载的项目获得了帮助:

以下是加载我的ASPX ViewPage的操作序列:

  • 调用控制器的操作方法
  • 将重定向到ASPX ViewPage
  • 我的ASPX ViewPage位于名为AspNetForms的文件夹中。
    文件夹AspNetForms位于我的项目根目录下

    我做了个测试。
    我已将AspNetForms文件夹移动到视图文件夹下。
    然后,我更新了操作方法中写入的重定向。
    但是,当我尝试加载我的ASPX ViewPage时,我遇到了404HTTP错误

    有人能告诉我视图文件夹有什么特别之处吗?

    我不确定路由是否与我的HTTP错误有关。
    有关信息,请参阅我在Global.asax.cs文件中编写的RegisterRoutes方法:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
             // Default parameters
            new { controller = "Accueil", action = "Accueil", id = UrlParameter.Optional }
        );
    }
    

    你没有提到你的控制器

    在MVC中,所有web请求(嗯,几乎所有)都通过一个控制器。如果您尚未定义控制器操作,它将为您提供404。这是非常基本的MVC,如果你不理解这一点,你真的需要回到教程


    视图永远不会直接呈现给客户端。如果您试图发送一个带有代码隐藏的标准.aspx页面,那么这不是一个视图。这是一个网络表单。MVC不允许通过URL直接访问Views文件夹,因为视图可能包含敏感信息。如果需要直接访问的文件,则必须将其放置在“视图”文件夹之外。

    视图文件夹包含一个web.config文件,其中包含以下行:

     <handlers>
          <remove name="BlockViewHandler"/>
          <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
     </handlers>
    
    
    
    此特殊处理程序阻止对“视图”文件夹的所有访问。如果删除这些行,您将能够访问您的ASPX页面。出于安全原因,这些线路是他们的。如果删除它们,也可以直接查看所有razor视图