如何在當前路線之前添加一條新路線,就像這樣。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index",
id = UrlParameter.Optional }
);
新航線將是這樣的 -
routes.MapRoute(
name: "**Withoutparam**",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
請注意,您需要在RouteConfig.cs當前的路線之前添加這條路線。這是因爲MVC從上到下開始在RouteConfig文件中搜索路由。一旦找到任何匹配的路線,它將停止進一步搜索。因此,對於你的問題,當沒有參數的路線將會選擇「Withoutparam」路線。
正如我可以從您的評論理解如下。在任何情況下,您都需要無ID的網址。如果是這樣,那麼我認爲你可以這樣做: -
var url = new StringBuilder();
string[] partOfUrl = HttpContext.Request.Url.AbsolutePath.ToLower().split('/');
for(int count = 0; count< (partOfUrl.Length - 1); count++)
{
url.Append(partOfLength[count] + "/")
}
使用url.ToString()作爲你想要的url。
(即你傳遞'id'只能通過查詢字符串)你只能保留'{controller}/{action}'路線。 – Albireo 2014-10-06 07:15:58
他也在某個時間使用id。 – Mukund 2014-10-06 07:24:10
是的,但是如果他只是* *作爲參數傳遞(他說*「這實際上是*),他不需要'{控制器}/{動作}/{id}'路線。 – Albireo 2014-10-06 07:26:18