gpt4 book ai didi

asp.net-mvc - URL.Action() 包括路由值

转载 作者:行者123 更新时间:2023-12-01 22:58:06 26 4
gpt4 key购买 nike

我有一个 ASP.Net MVC 4 应用程序,并且正在使用 Url.Action 帮助程序,如下所示:@Url.Action("Information", "Admin")

此页面用于添加新的和编辑管理员配置文件。网址如下:

 Adding a new:       http://localhost:4935/Admin/Information
Editing Existing: http://localhost:4935/Admin/Information/5 <==Admin ID

当我在网站的编辑现有部分并决定添加新管理员时,我单击以下链接:

 <a href="@Url.Action("Information", "Admin")">Add an Admin</a>

但问题是,上述链接实际上是http://localhost:4935/Admin/Information/5。仅当我在该页面中编辑现有管理员时才会发生这种情况。网站上的任何其他位置都正确链接到 http://localhost:4935/Admin/Information

还有人看过这个吗?

更新:

路由配置:

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

最佳答案

基于当前路由架构生成的mvc中的传出url。

因为您的信息操作方法需要 id 参数,并且您的路由集合具有当前请求的 url (/Admin/Information/5) 的 id,所以 id 参数会自动从现有路由集合值中获取。

要解决此问题,您应该使用 UrlParameter.Optional:

 <a href="@Url.Action("Information", "Admin", new { id = UrlParameter.Optional })">Add an Admin</a>

关于asp.net-mvc - URL.Action() 包括路由值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19107061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com