@带有QueryString参数的Html.Action MVC 4

本文关键字:Action MVC Html 带有 QueryString 参数 | 更新日期: 2023-09-27 18:14:49

我有一个问题与MVC 4中的Html.Action有关我想把一些Querystring变量和它一起传递到Details视图

我现在的代码是

System.Text.StringBuilder MobileData = new System.Text.StringBuilder();
MobileData.AppendFormat("<a style='"text-align:left;'" data-role='"button'"     onclick='"window.location='" + @Url.Action("Taken_Detail", new { id = tk.ID }) + "';'" data-  ajax='"true'" data-icon='"alert'"><span class='"AgenItems'">{1:dd-MM-yyyy}</span>", tk.ID, tk.Datum);

问题是他会将我重定向到localhost/PROJECTNAME/Home/Taken_Detail/2我想要的是Home/Taken_Detail?id=2我在这里错过了什么我才刚刚开始学习MVC 4,欢迎每一个提示。

@带有QueryString参数的Html.Action MVC 4

这是因为您的路由包含id参数。从路由中删除它,Url.Action将更改URL并将您的参数添加到查询字符串中。

示例:

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

如果使用Url.Action指定id参数,则该参数将放在最后一个斜杠之后。

如果你删除它:

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

生成的URL将具有一个包含id的查询字符串。