routes.MapRoute("Archive.CityState",
"Archive/{City}/{State}/{OP1}/{OP2}",
new { controller = "Archive", action = "CityState", OP1 = UrlParameter.Optional, OP2 = UrlParameter.Optional },
new { City="[a-zA-Z]+" ,State = @"[a-zA-Z]{2}", OP1 = @"[a-zA-Z]+" , OP2 =@"\d{4}" });
public ActionResult CityState(string City, string State, string OP1, int OP2)
{
var x = City;
var y = State;
var OptionalParameter1= OP1;
var OptionalParameter2 = OP2;
return View();
}
这可以映射
存档/雷蒙/ WA /化学
存档/雷蒙/ WA /化学/ 2010
但不是
存档/雷蒙/ WA
有人可以帮忙吗?感谢。
答案 0 :(得分:0)
这些限制使其无法匹配您想要的内容:
OP1 = @"[a-zA-Z]+",
OP2 = @"\d{4}"
因为两个参数都是必需的。如果希望此路由能够与Archive/Remond/WA
匹配,请修改正则表达式以接受空值。还要记住,只有 last 参数可以是可选的(你不能有两个连续的可选参数,因为这没有意义)。