繁体   English   中英

MVC vNext路由和ActionLink

[英]MVC vNext Routing and ActionLink

MVC 6-带Core 5.0的vNext

我在我的项目中使用路线,如下所示:

routes.MapRoute(
    name: "Default",
    template: "{firstId}/{secondId}",
    defaults: new { controller = "Window", action = "Index" });

在我的一种视图中,我尝试创建一个像这样的ActionLink

@Html.ActionLink("Title", "Index", "Window", new { firstId = "a", secondId = "b" }, null);

ActionLink返回以下锚点:

<a href="/Window?firstId=a&secondId=b">Test</a>

但是我期望的是:

<a href="/a/b">Test</a>

谁能解决这个问题?

我认为问题可能只是您使用的是template属性而不是url 看完MSDN后,我在Route类上找不到template属性,您是在实现自己的template吗?

无论如何,我认为这应该可行(假设您没有像您所说的那样定义其他路线):

routes.MapRoute(
    name: "Default",
    url: "{firstId}/{secondId}",
    defaults: new { controller = "Window", action = "Index" }
); 

这是路线:

 routes.MapRoute(
     "Default",
     "Window/Index/{firstId}/{secondId}",
     new { controller = "Window", action = "Index" });

这将产生以下结果:

<a href="Window/Index/a/b">Test</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM