为什么我不这样做?

Tra*_*bbs 0 javascript ajax asp.net-mvc

函数名在当前上下文中不存在是它给我的错误.我想要一个动态的ajax调用.为什么会这样?我得到处理程序处理服务器端,但我不知道如何解决这个问题.

var getManager = function (functionName, contentDiv) {
    console.log("aircraft manager refresh called");
    $.ajax({
        type: "GET",
        url: '@Url.Action(functionName, "AdminTools")',
        cache: false,
        data: {},
        error: function () {
            alert("An error occurred.");
        },
        success: function (data) {
            $("#".concat(contentDiv)).html(data);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ips 5

我强烈建议您不要将服务器端和客户端代码耦合在一起,如:

$.ajax({
    type: "GET",
    url: '@Url.Action(functionName, "AdminTools")',  //THIS
Run Code Online (Sandbox Code Playgroud)

它将变成维护噩梦.代替:

<div id="#contentDiv" data-url="@Url.Action(functionName, "AdminTools")">
@* content *@
</div>
Run Code Online (Sandbox Code Playgroud)

然后

var getManager = function (functionName, contentDiv) {
  console.log("aircraft manager refresh called");
  var url = contentDiv.data("url");
  $.ajax({
    type: "GET",
    url: url,
    // .....
Run Code Online (Sandbox Code Playgroud)

如果您稍后决定拥有多个contentdiv,则每个都可以拥有自己的url,并且您的代码可以重复使用.