我正在使用ASP .NET MVC 3框架开发Web应用程序 我已经实现了一个包含CrystalReportViewer控件的ASPX ViewPage 我可以通过查看可下载的项目获得帮助:http://hasibulhaque.com/?p=244
这是加载我的ASPX ViewPage的动作序列:
我的ASPX ViewPage位于名为AspNetForms的文件夹中 AspNetForms文件夹位于我项目的根目录下。
我做了一个测试 我已将Views文件夹下的AspNetForms文件夹移动了 然后我更新了动作方法中写的重定向 但是当我尝试加载ASPX ViewPage时,我遇到了404 HTTP错误。
有人可以向我解释一下Views文件夹有什么特别之处吗?
我不确定路由是否与我的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 }
);
}
答案 0 :(得分:1)
您没有提及有关控制器的任何信息。
在MVC中,所有Web请求(好吧,几乎所有)都通过控制器。如果你还没有定义一个控制器动作,它会给你一个404.那是非常基本的MVC,如果你不明白这一点,你真的需要回到教程。
视图永远不会直接呈现给客户端。如果您尝试发送带有代码的标准.aspx页面,那么这不是一个视图。这是一个网络形式。 MVC不允许通过URL直接访问Views文件夹,因为Views可以包含敏感信息。如果您想要直接访问的文件,则必须将其放在Views文件夹之外。
答案 1 :(得分:1)
View文件夹包含一个web.config文件,其中包含以下行:
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
此特殊处理程序阻止对Views文件夹的所有访问。如果删除这些行,您将能够访问ASPX页面。这些行是出于安全原因。如果您删除它们,您也可以直接查看所有剃须刀视图。