最近研究MVC,用VS2008自带的调试程序一切OK。然后设置成IIS的虚拟目录发现好像CONTROL无法解析出来,提示“无法找到该页”。一开始怀疑是没有设置到根目录的问题,然后设置到IIS的根目录,结果错误依然!最后发现是XP自带的IIS5和VS2008的开放服务器的差异问题。查考:http://blogs.microsoft.co.il/blogs/dorony/archive/2007/12/15/using-asp-net-mvc-on-iis-5.aspx 原因原来是IIS对无后缀的WEB程序没有进行解析
设置该虚拟目录下的映射关系,增加“.*”的扩展,可执行文件路径设置同“.ASPX ”,特别不要忘记取消“检查文件是否存在”!
解决方法之二:以上方法影响范围过大,也可以用修改MVC的ROUTING来解决
修改:DEFAULT页面:
Code
public void Page_Load(object sender, System.EventArgs e)
{
Response.Redirect("~/Home");
}
改成
public void Page_Load(object sender, System.EventArgs e)
{
Response.Redirect("~/Home.aspx");
}
修改ROUTE:
Code
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
改为
routes.MapRoute(
"Default", // Route name
"{controller}.aspx/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
这样就是/HOME.ASPX/INDEX代替/HOME/INDEX了