如何在IIS6.0上部署ASP.NET MVC并更改路由以包含.aspx?

3
这是我的路由表,我应该把各种'.aspx'注册放在哪里?
//Turns off the unnecessary file exists check
this._Routes.RouteExistingFiles = true;

//Ignore text, html, xml files.
this._Routes.IgnoreRoute("{file}.txt");
this._Routes.IgnoreRoute("{file}.htm");
this._Routes.IgnoreRoute("{file}.html");
this._Routes.IgnoreRoute("{file}.xml");

//Ignore axd files such as assest, image, sitemap etc
this._Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

//Ignore the assets directory which contains images, js, css & html
this._Routes.IgnoreRoute("Assets/{*pathInfo}");

//Ignore the error directory which contains error pages
this._Routes.IgnoreRoute("ErrorPages/{*pathInfo}");

//Exclude favicon (google toolbar request gif file as fav icon)
this._Routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.([iI][cC][oO]|[gG][iI][fF])(/.*)?" });

//Photo routes
this._Routes.MapRoute("PhotoAssets", "Photos/Photo/{photoId}/Size/{photoSizeClassificationId}", MVC.Photo.Photo(0, null));

//Handles department profile routes 
this._Routes.MapRoute("WorkerProfileLeader", "Department/{departmentId}/Worker/Profile/Leader/List/{viewType}", MVC.WorkerProfile.List(PersonType.Leader, "", DisplayViewType.SummaryThumbnailList));
this._Routes.MapRoute("WorkerProfile", "Department/{departmentId}/Worker/Profile/{personType}/List/{viewType}", MVC.WorkerProfile.List(PersonType.Pleb, "", DisplayViewType.ThumbnailGrid));
this._Routes.MapRoute("WorkerProfilePerson", "Department/{departmentId}/Worker/Profile/{personType}/Detail/{personId}", MVC.WorkerProfile.Detail(PersonType.Pleb, "", ""));

//Default route mapping
this._Routes.MapRoute("Start", "Default.aspx", MVC.Home.Index());
this._Routes.MapRoute("Default", "{controller}/{action}", MVC.Home.Index());

你好,Anthony


你不想要通配符设置吗?就像Phil Haack所描述的那样。 - DevelopingChris
2个回答

1

请确保URL的第一部分以.aspx结尾,例如:

this._Routes.MapRoute("WorkerProfileLeader", "Department.aspx/{departmentId}/Worker/Profile/Leader/List/{viewType}", ...
this._Routes.MapRoute("Default", "{controller}.aspx/{action}", MVC.Home.Index());

谢谢,这就是我想知道的。 - vdh_ant

0

我相信事实上,.aspx 出现在 URL 的什么位置并不重要,只要它出现在其中某个位置且是第一个看起来像文件扩展名的东西。实际上,我见过一种技巧是将 .aspx 放在包含应用程序的文件夹名称中!换句话说,应用程序名称本身就是 "myapp.aspx",尽管那只是一个文件夹。

只要 .aspx 出现在路径中的第一个文件扩展名,IIS 就会使用该文件扩展名来处理请求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接