首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC Url.Action将当前路由值添加到生成的url中

ASP.NET MVC Url.Action将当前路由值添加到生成的url中
EN

Stack Overflow用户
提问于 2011-08-21 00:52:27
回答 5查看 34.6K关注 0票数 54

我在SO中已经看过这个问题几次了,但没有一个有任何可以接受的答案:

ASP.NET MVC @Url.Action includes current route data

ASP.NET MVC implicitly adds route values

基本上,我的Controller有一个名为Group的操作方法,它有一个重载,它不接收任何参数并显示元素列表,另一个重载接收id并显示该组的详细信息。

如果我这样做:

代码语言:javascript
复制
Url.Action("Group", "Groups");

从站点的主页(/),它返回一个url,如下所示:

代码语言:javascript
复制
"mysite.com/Groups/Group"

现在,如果站点的当前地址是/Groups/Group/1,并且我调用相同的方法,这就没问题了

代码语言:javascript
复制
Url.Action("Group", "Groups");

返回的url如下:

代码语言:javascript
复制
"mysite.com/Groups/Group/1"

它会在生成URL时自动添加当前页面的路由值。即使我以这种方式生成URL:

代码语言:javascript
复制
Url.Action("Group", "Groups", null);

因此,显式指定我不需要任何路由值,生成的URL是相同的。为了获得我想要的地址,我必须显式地将路由值设置为空字符串,如下所示:

代码语言:javascript
复制
Url.Action("Group", "Groups", new {id=""});

这将生成以下url:

代码语言:javascript
复制
"mysite.com/Groups/Group"

我的问题是,为什么会发生这种情况?如果我没有设置任何路由值,它就不应该将它们添加到生成的URL中。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7133223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档