asp.net mvc 中一般是
controller/action/參數
的位址形式
但是大多數時候,網站的位址不是這樣的路徑
如:
xxxx.com/asp.net/
xxxx.com/asp.net/mvc/
xxxx.com/asp.net/webform/
xxxx.com/asp.net/ado.net/
xxxx.com/javascript/
xxxx.com/javascript/jquery/
#
xxxx.com/javascript/angularjs/
#
xxxx.com/javascript/jichu/
xxxx.com/jiaoyu/
#這時候,位址就不是 controller/action/參數 的形式
不知道 asp.net mvc 中如何對應這種路徑? ? ?
這個要看你的路由規則如何定義以及路由的定義順序。
假如這個請求進入到ASP.NET管道模型中,它就會去到預先定義的路由中去執行匹配,遇到第一個匹配的路由,就直接將這個路由結果返回了。
例如預設的路由的第一個路由規則是:
xxxx.com/asp.net/ 將符合這條路由規則,controller="asp.net",action="Login";
xxxx.com/asp.net/mvc/ 也會符合這條路由規則,controller="asp.net",action="mvc";
假如說你另外定義了一條路由規則,而且這條路由規則在剛才那條路由規則前面:
xxxx.com/asp.net/ 將符合這條路由規則,controller="User",action="Link";
但xxxx.com/cast/將不匹配第一條路由規則,而繼續用第二條路由規則匹配,這時就會匹配成功,controller="cast", action="Login"
建議可以看下《精通ASP.NET MVC3框架》這本書,第11章路由規則有此問題的分析介紹。