加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC – Routes和UrlHelper

发布时间:2020-12-16 07:20:58 所属栏目:asp.Net 来源:网络整理
导读:我有以下路线 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 de
我有以下路线

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
);

当我访问URL时

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

我究竟做错了什么?

解决方法

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

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

路由名称重载.

干杯!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读