gpt4 book ai didi

javascript - 使用参数 MVC 4 javascript 调用操作方法

转载 作者:数据小太阳 更新时间:2023-10-29 05:55:17 25 4
gpt4 key购买 nike

我又累又蠢,但这是我的编码问题:

我们使用 d3.js 在名为 Live 的 MVC4 操作方法中绘制谷歌地图元素。我们已经为 d3.js 元素实现了点击,需要从 javascript 重定向到另一个 MVC 操作方法。

Action 方法“声明”如下所示:

public ActionResult Visualization(String appId = "", String userId = "")

在 javascript 中,我们在 d3.js 函数中有一个有效的代码片段,看起来像这样:

.on("click", function (d, i) {
// just as an example use for the click-event.
alert(d.AppName); }

dAppId,还有 UserId

我们现在要做的是为点击事件创建一个重定向,调用操作方法以及来自 d 的参数。这意味着当您单击 d3.js 元素时,您将被重定向到具有预设参数的其他页面。

我们已经尝试过这样的事情:

window.location.href = "/StatsLocationController/Visualization/appId=" + d.AppIdentifier + "/userId=" + d.DeviceId

我们也尝试过使用 window.location.replace(),但都没有用,我想我们还没有找到 actionLink 的正确语法,但在谷歌搜索时很难找到示例。我们非常感谢我们能得到的任何帮助!

最佳答案

代替:

window.location.href = Html.ActionLink("Visualization", "StatsLocationController", new{ appId=d.AppId, userId=d.UserId}, new{})

尝试:

window.location.href = '@Url.Action("Visualization", "StatsLocationController", new{ appId=d.AppId, userId=d.UserId})'

这是假设您已正确设置路由?

编辑:

使这项工作可行的路由类型如下:

routes.MapRoute(
"MyRoute",
"{controller}/{action}/{appId}/{userId}",
new {
controller = "Home",
action = "Index",
appId = UrlParameter.Optional,
userId = UrlParameter.Optional
});

第二次编辑

我刚刚注意到您正在调用您的 Controller StatsLocationController - 除非您的 C# 类被称为 StatsLocationControllerController - 这是错误的。 Asp.Net MVC 假定对于 Controller ,将有一个名为 StatsLocationController 的类,因此您应该在没有 Controller 部分的情况下引用您的 Controller 。因此,在此示例中,您的 Controller 应称为 StatsLocation,这将使 URL 如下所示:

@Url.Action("Visualization", "StatsLocation", new{ appId=d.AppId, userId=d.UserId})

关于javascript - 使用参数 MVC 4 javascript 调用操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17702427/

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