我有这个网址:
/controller/action/value
和这个动作:
public ActionResult Get(string configName,string addParams)
{
}
如何设置路由表以使路由引擎将值绑定到configName
控制器中任何操作的Config
参数?
答案 0 :(得分:5)
嗯,首先,这是不完整的。您没有方法名称。
其次,这已经适用于以下格式的网址:
/控制器/动作CONFIGNAME = FOO&安培; addparams =酒吧
以下是如何使用漂亮的路线:
routes.MapRoute(
"YourMapping",
"{controller}/{action}/{configName}/{addParams}");
或
routes.MapRoute(
"YourMapping",
"{controller}/{configName}/{addParams}",
new {
controller = "YourController",
action = "YourAction"
},
new {
controller = "YourController" // Constraint
});
如果您要从网址中排除操作。
答案 1 :(得分:3)
您可以在默认
之上添加新路线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
。您的其他路线不受此影响。
答案 2 :(得分:2)
routes.MapRoute(
"ValueMapping",
"config/{action}/{configName}/{addParams}",
new { controller = "Config", action = "Index", configName= UrlParameter.Optional, addParams = UrlParameter.Optional } // Parameter defaults);
将默认控制器设置为Home,默认操作为索引
所以网址:
/config/get/configNameValue/AddParamValue
将匹配此方法:
public ActionResult Get(string configName,string addParams)
{
//Do Stuff
}