javascript - 在 Razor 语法中嵌入javascript变量

标签 javascript asp.net-mvc razor

我有一个看起来像这样的方法

function endcall_click(leadid) {
    document.location = '@Url.Action("index","dispo",new{id=leadid})/';
}

当然它不起作用,因为它将“leadid”视为服务器端变量,但我想注入(inject)传递到方法中的 javascript 变量。

我尝试将潜在客户 ID 包装起来,但没有用。

function endcall_click(leadid) {
    document.location = '@Url.Action("index","dispo",new{id="<text>leadid</text>"})/';
}

有什么想法吗?

最佳答案

您不能将 javascript 变量注入(inject)到在服务器上评估的脚本中,因为在该脚本执行并生成输出的那一刻,该变量尚未存在。实现此目的的唯一方法是操作生成的字符串:

function endcall_click(leadid) {
    document.location = '@Url.Action("index", "dispo")/' + leadid;
}

缺点是这假定在 javascript 中操作路由,如果您决定在服务器上更改它们,代码可能会中断。

关于javascript - 在 Razor 语法中嵌入javascript变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332253/

相关文章:

javascript - 使用 Url.Action 和 jquery href attr 生成链接

javascript - jQuery .show 问题(Safari iPad)

javascript - 文本在导出为字符串然后从 loadSVGFromString 导入后具有错误的 x 位置

javascript - 如何在 for 循环中为文本设置动画?

javascript - 动画 jQuery 属性不能使用变量?

c# MVC 有条件地隐藏标题按钮

asp.net-mvc - 当我使用azure帐户时是否可以更改 "cdn"文件夹名称

asp.net-mvc - 为位于子域上的图像在 http 和 https 之间切换

javascript - 如何在 JavaScript 中使用带有 ILIST<models> 的 foreach 循环?

asp.net-mvc - 如何在 Webmatrix.Data.Database 中创建事务提交和回滚