更新MVC中的数据库行而不使用表单控件

时间:2015-10-22 04:09:21

标签: asp.net asp.net-mvc

我的观点有chessboard.js棋盘。用户进行一次移动,然后单击“提交”按钮。我希望我的HttpPost方法检索这个新的板位置并在我的数据库中更新它。

我是MVC的新手,之前我见过的所有示例都使用了输入控件的值来更新数据库。我的问题是当用户没有在表单控件中输入任何值时如何更新数据库中的行 - 他们只是在棋盘上移动? (一旦玩家移动,FEN字符串就会被新的棋盘位置更新。我只需要在按下提交按钮后将该字符串输入我的数据库)

1 个答案:

答案 0 :(得分:1)

如果您正在设计国际象棋游戏平台,如果您需要实时棋盘更新,则应考虑使用SignalR。它将是一种双向通信,具有最小延迟。这显然不是ASP.NET MVC初学者的基本主题。这个here上有很多材料。

如果您不需要实时更新,并且只是想在没有任何按钮提交的情况下将移动信息发送到服务器,则可以使用javascript / jQuery和Ajax。基本上当用户进行移动时,应该调用javascript函数:

function sendMoveInformation(fen) {
    $.ajax({
        type: "POST",
        url: '/Game/MakeMove',
        data: "fen=" + fen,
        success: function () { /* do you need to do anything on success? */ }
    });
}

你的ASP.NET MVC控制器动作:

[HttpPost]
public ActionResult MakeMove(string fen)
{
    // do something with FEN
    return Content("OK");
}

考虑使用ASP.NET WebAPI并使用JSON消息格式进行通信。