默認情況下,如果url是'mydomain',它將轉到控制器home; action = index。當動作有參數時,家庭控制器如何定義爲root? asp.mvc 4
但是,當指數行動PARAMS的URL必須是:
mydomain/home/index?name=John
想:
mydomain?name=John
應該怎樣定義創建這樣的網址是什麼?
感謝,
優素福
默認情況下,如果url是'mydomain',它將轉到控制器home; action = index。當動作有參數時,家庭控制器如何定義爲root? asp.mvc 4
但是,當指數行動PARAMS的URL必須是:
mydomain/home/index?name=John
想:
mydomain?name=John
應該怎樣定義創建這樣的網址是什麼?
感謝,
優素福
您確定要將mydomain/home/index?name=John
和mydomain?name=John
作爲您網站上的網址嗎?
如果你糾正了你的路由引擎,你的路由可能是mydomain/home/index/john
和mydomain/john
,這對我來說會更加正確。
這就是你要去的地方嗎?
如果是這樣,假設你有一個Index動作,在你的家庭控制器中接受一個名字的字符串參數,你可以修改你的global.asax,並且改變默認路由,並且像這樣在標準默認路由下添加一條路由:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", name= UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"NameOnly", // Route name
"{name}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
要確保你把這個名字唯一途徑在底部,如基於字符串的參數,會匹配一切,所以你需要先匹配更明確的。
正確的網址如下:
http://mydomain.com/?name=John
由於默認路由設置,這將調用上Home
控制器Index
行動並通過name
參數。
只要您關於mydomain?name=John
網址的要求被考慮,那麼這個網址看起來並不完整。
我的控制器是針對網站的ajax調用 - 不需要友好的url – Yosef