没有从 $.get 的 ActionResult 中获取结果

本文关键字:ActionResult 获取 结果 get | 更新日期: 2023-09-27 18:35:21

我正在使用jquery get来尝试刷新部分视图,但它不起作用。 我至少有语法正确吗? 我是 c# 的新手

我的JavaScript是(工作正常)

function takeSquare(square) {
   var x = $(square).attr('x');
   var y = $(square).attr('y');
    alert(x + y);
$.get("Home/updateBoardSquare", { posX: y, posY: y }, function (html) {
    $("#gameBoard").replaceWith(html);
});
alert(html);
}

我的 C# 是

 public ActionResult updateBoardSquare(int posX, int posY){
        String boardHtml = "";
        for (int i = 0; i < 15; i++) {
            for (int k = 0; k < 15; k++) {
                if (board[i, k] == null)
                    board[i, k] = new BoardSquare(i, k);
                if (i == posX && k == posY) 
                    board[posX, posY].takeSquare((String) Session["color"]);
                boardHtml += board[i, k].getHtml();
            }
        }
        ViewData["board"] = boardHtml;
        return PartialView();
    }

我只是从get语句中根本没有得到任何东西

没有从 $.get 的 ActionResult 中获取结果

Internet Explorer 无法处理相对 URL。

使用这个:

function takeSquare(square) {
   var x = $(square).attr('x');
   var y = $(square).attr('y');
    alert(x + y);
$.get('@Url.Action("Home", "updateBoardSquare")', { posX: y, posY: y }, function (html) {
    $("#gameBoard").replaceWith(html);
});

}

看?我正在使用@Url.Action让 Razor 生成要使用的网址。好处是它适用于托管在虚拟目录中的根网站和应用程序。

我只是从get语句中根本没有得到任何东西

您正在尝试在成功回调之外使用 html 变量。

此外,您似乎已经颠倒了两次使用y变量:

$.get("Home/updateBoardSquare", { posX: x, posY: y }, function (html) {
    $("#gameBoard").replaceWith(html);
    alert(html);
});