我有這個網址:如何使用ASP.NET MVC路由設置RESTF URL?
/controller/action/value
,因此這個動作:
public ActionResult Get(string configName,string addParams)
{
}
如何設置我的路由表來獲取路由引擎值綁定到configName
參數的任何行動在Config
控制器中?
我有這個網址:如何使用ASP.NET MVC路由設置RESTF URL?
/controller/action/value
,因此這個動作:
public ActionResult Get(string configName,string addParams)
{
}
如何設置我的路由表來獲取路由引擎值綁定到configName
參數的任何行動在Config
控制器中?
routes.MapRoute(
"ValueMapping",
"config/{action}/{configName}/{addParams}",
new { controller = "Config", action = "Index", configName= UrlParameter.Optional, addParams = UrlParameter.Optional } // Parameter defaults);
設置默認控制器首頁,與指數
的默認操作這樣的網址: /config/get/configNameValue/AddParamValue
會匹配這個方法:
public ActionResult Get(string configName,string addParams)
{
//Do Stuff
}
我想這適用於整個應用程序,但我只需要Config控制器。 – user256034 2011-03-08 12:59:06
@ user256034 - 查看我的更新 – Tr1stan 2011-03-08 13:01:31
那麼,首先,這是不完整的。您沒有方法名稱。
其次,將已經與格式的網址的工作:
/控制器/動作配置名稱= foo的& addparams =酒吧
下面介紹如何用漂亮的途徑做到這一點:?
routes.MapRoute(
"YourMapping",
"{controller}/{action}/{configName}/{addParams}");
或
routes.MapRoute(
"YourMapping",
"{controller}/{configName}/{addParams}",
new {
controller = "YourController",
action = "YourAction"
},
new {
controller = "YourController" // Constraint
});
,如果你想排除來自URL的動作。
Ups,我添加了動作名稱。是的,我知道,但我想要的URL像/ config/get/value。第二個參數是可選的。 – user256034 2011-03-08 12:58:23
你可以添加一個新的高於默認路線
routes.MapRoute(
"Config",
"config/{action}/{configName}/{addParams}",
new { controller = "Config", action = "Index" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
這將允許您使用路線/config/actionName/configName/addParamsValue
。你的其他路線應該不受此影響。
關於可選參數,您使用哪個版本的MVC來做到這一點? – Tr1stan 2011-03-08 13:16:04
asp.net mvc 3 .. – user256034 2011-03-08 13:50:13
僅供參考,沒有什麼RESTFUL關於漂亮的網址。 – 2011-03-09 13:26:31