我想获取当前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/

10-13 06:19