我們可以在MVC類似下面 例如多路由模式。
url:「{controller}/{action}/{id}」--->標準方式;
網址: 「{行動}/{}控制器/(編號)」 --->這是有效的路由模式
您可以通過添加一些自定義路由到您的路由配置來輕鬆測試它。例如通過增加航線:
routes.MapRoute( name: "test", url: "{action}/{controller}/{id}");
,並在瀏覽器中,你會打以下行動打字http://localhost/TestAction/Home/8
:
public class HomeController : Controller
{
public ActionResult TestAction(int id)
{
return Json(id,JsonRequestBehavior.AllowGet);
}
}
如何路由引擎識別哪個段是actionname和 哪個段是控制器名稱?
路由引擎通過{動作}和{控制器}路由參數或由您在寄存器路線提供缺省值確定操作和控制器段。
它也容易測試:從您的路線,並改變URL來{notcontroller}/{action}/{id}
刪除默認值,你會得到System.InvalidOperationException: The matched route does not include a 'controller' route value, which is required.
MVC將一個URL,這樣的路線聲明順序映射到適合路由模式的第一條路線非常重要 - 你應該首先聲明最受約束的路線,而默認路線應該是最後一個。
一般來說mvc路由非常靈活。例如,您可以創建不同的URL模式:
Routes.MapRoute(
name: "test",
url: "{controller}-{action}/{id}");
將請求映射如http://localhost/Home-Index/5
MVC 5引入了Attribute routing它提供了更大的靈活性。
感謝您的詳細解釋Alex – 2014-12-04 06:10:09