【问题标题】:ASP.NET MVC - Routes and UrlHelperASP.NET MVC - 路由和 UrlHelper
【发布时间】:2009-01-18 23:26:19
【问题描述】:

我有以下路线

routes.MapRoute(
    "GigDayListings",                                   // Route name
    "gig/list/{year}/{month}/{day}",                    // URL with parameters
    new { controller = "Gig", action = "List" },
    new
    {
        year = @"^[0-9]+$",
        month = @"^[0-9]+$",
        day = @"^[0-9]+$"
    }  // Parameter defaults
);

当我访问网址时

gig/list/2009/01/01

这条路线完美匹配,我的动作被调用。

在我看来,我有一个助手,它执行以下操作:

var urlHelper = new UrlHelper(ViewContext);
string url = urlHelper.RouteUrl(ViewContext.RouteData.Values);

生成的字符串是:

http://localhost:3539/gig/list?year=2005&month=01&day=01

为什么没有

http://localhost:3539/gig/list/2005/01/01

我做错了什么?

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-routing urlhelper


【解决方案1】:

我认为您的问题是您没有在通话中指定路由名称。尝试使用

UrlHelper.RouteUrl(**"GigDayListings"**, ViewContext.RouteData.Values); 

使用路由名称重载。

干杯!

【讨论】:

    【解决方案2】:

    当您提供 gig/list/2008/01/01 时,您是否检查过它实际上正在使用 GigDayListings 路线?也许它正在使用不同的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2016-04-26
      相关资源
      最近更新 更多