我想获取当前URL并将附加参数附加到url(例如?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/01
我懂了
演出/列表/?year = 2008&month = 11&day = 01&id = 1
我希望网址为:
controller / action / 2008/11/01?id = 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
);
关于asp.net-mvc - 使用asp.net MVC和RouteUrl创建URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/366498/