.net HTML.RouteLink将参数作为键值对而不是路径传递

时间:2016-12-30 20:33:06

标签: .net razor routelink

所以在我的RouteConfig中,我有一条看起来像这样的路线:

        routes.MapRoute(
           name: "Default",
           url: "{controller}/{action}/{GUID}",
           defaults: new { controller = "Home", action = "Index", GUID = UrlParameter.Optional }
       );

我正在制作这样的链接:

@Html.RouteLink("Thing", new { controller = "Modules", action = "View", GUID = "27ACBB7C-075A-49BD-9B43-000EAE3E6B6F" })

我希望它创建以下链接:

<a href = ".../Modules/View/27ACBB7C-075A-49BD-9B43-000EAE3E6B6F">Thing</a>

但相反,我得到了:

<a href = ".../Modules/View?GUID=27ACBB7C-075A-49BD-9B43-000EAE3E6B6F">Thing</a>

如何让RouteLink将参数作为路径而不是键值对?

(这似乎很明显我确定有人会告诉我这是一个重复的问题,但我已经用我知道的每个关键字搜索了这个问题,所以我很乐意从现有问题中得到答案,如果它已经存在。)

1 个答案:

答案 0 :(得分:0)

当控制器内的方法具有错误的参数名称时,通常会发生这种情况。

Modules控制器内,View方法应定义为:

View(Guid GUID)