我想获取当前网址并在网址上附加一个额外的参数(例如?id = 1)
我已经定义了一条路线:
routes.MapRoute(
"GigDayListings", // Route name
"gig/list/{year}/{month}/{day}", // URL with parameters
new { controller = "Gig", action = "List" } // Parameter defaults
);
In my view I have a helper that executes the following code:
// Add page index
_helper.ViewContext.RouteData.Values["id"] = 1;
// Return link
var urlHelper = new UrlHelper(_helper.ViewContext);
return urlHelper.RouteUrl( _helper.ViewContext.RouteData.Values);
然而这不起作用。
如果我的原始网址是: 演出/列表/ 2008/11月1日
我得到了
演出/列表/年= 2008&安培;一个月= 11和天= 01和ID = 1
我希望网址为: 控制器/动作/ 2008/11/012 ID = 1
我做错了什么?
答案 0 :(得分:1)
规则的顺序是有道理的。尝试首先插入此规则。
如果需要,也不要忘记定义约束 - 这将导致更好的规则匹配:
routes.MapRoute(
"GigDayListings", // Route name
"gig/list/{year}/{month}/{day}", // URL with parameters
new { controller = "Gig", action = "List" }, // Parameter defaults
new
{
year = @"^[0-9]+$",
month = @"^[0-9]+$",
day = @"^[0-9]+$"
} // Constraints
);