MVC路由配置导致Html.ActionLink自动加参数的问题

lovebaby 2016-10-19 03:39:37
我在路由配置中增加了如下路由:
routes.MapRoute(
"Item",
"{controller}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new { id = @"[\d]+" }
, new string[] { "zmjj.Controllers" }// Parameter defaults
);


Html.ActionLink会自动将URL后面的ID加上去,如当前URL为:http://localhost:44695/News/View/9,那么我用@Html.ActionLink("资讯中心", "Index", "News")生成的URL为<a href="/News/9">资讯中心</a>,试问应该怎样修改呢?
...全文
309 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovebaby 2016-10-19
  • 打赏
  • 举报
回复
@Html.ActionLink("资讯中心", "Index", "News")正常生成的URL应该为<a href="/News">资讯中心</a>,而实际现在生成的URL为<a href="/News/9">资讯中心</a>
lovebaby 2016-10-19
  • 打赏
  • 举报
回复
我的自定义路由是可以正确匹配的,现在的问题不是路由匹配的问题,而是它会影响@Html.ActionLink("资讯中心", "Index", "News")的生成URL,会自动将当前URL后面的ID加上@Html.ActionLink("资讯中心", "Index", "News")生成的URL后面
王志威丶 2016-10-19
  • 打赏
  • 举报
回复
你是想让它默认进Index然后传参数1?
lovebaby 2016-10-19
  • 打赏
  • 举报
回复
上面的自定义路由是用来匹配News/1这种URL的,否则会是News/Index/1
lovebaby 2016-10-19
  • 打赏
  • 举报
回复
引用 1 楼 wangzhiwei0721 的回复:
{controller}/{id}这里应该是{controller}/{action}/{id}
如果是这样,我就不用自定义路由了
王志威丶 2016-10-19
  • 打赏
  • 举报
回复
{controller}/{id}这里应该是{controller}/{action}/{id}

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧