gpt4 book ai didi

javascript - 如何使用 Action razor 语法在 ajax url 中使用 var

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:55 25 4
gpt4 key购买 nike

我有一个通过 Action URL 调用 Controller 中方法的函数,但我需要使用像方法名称这样的参数,但以这种方式这是不可能的。

function changeDropDownList(id, dropNameToChange, actionName, descriptionName) {

var control = $('#'+dropNameToChange);
control.prop("disabled", false);

$.ajax({
//Here I need use the actionName var, but only accept a string
url: '@Url.Action(actionName, "ThirdPartiesDef")',
dataType: "JSON",
data: { id: id },
contentType: "application/json; charset=utf-8",
success: function (result) {
control.empty();
$.each(result, function (index, item) {
control.append(
$('<option/>', {
value: item.Id,
text: item[descriptionName]
})
);
});
},
error: function (error) {
alert("Error: " + error);
}
});
}

我对ajax不太了解,如果你能告诉我一些更简单的方法,那就没问题了。

感谢您的帮助

最佳答案

您可以在 Url.Action 服务器端 Razor 函数中使用占位符,该函数将被您的 javascript actionName 变量替换 在客户端:

url: '@Url.Action("#THE-ACTION#", "ThirdPartiesDef")'.replace('#THE-ACTION#', actionName)

基本上会在客户端的浏览器内发出以下标记:

url: '/#THE-ACTION#/ThirdPartiesDef/'.replace('#THE-ACTION#', actionName)

在客户端调用 changeDropDownList javascript 函数后,它将用 actionName javascript 变量替换占位符,最终您将获得可用于您的AJAX 调用。

作为旁注,您应该从 AJAX 调用中删除 contentType: "application/json; charset=utf-8" 参数,因为您根本没有在 中发送任何 JSON data 参数。

关于javascript - 如何使用 Action razor 语法在 ajax url 中使用 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41877350/

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