ASP.asp.net MVC和Ajax发送数据

本文关键字:数据 Ajax asp net MVC ASP | 更新日期: 2023-09-27 18:06:14

我试图发送数据到我的控制器。控制器将所有数据正确地发送到客户端,但从客户端发送到控制器的数据不正确。

我的前码:

$(document).ready(function () {
    $("#MessageSend").click(function () {
        var serviceURL = '/User/Chat';
        var model = {
            Message: $("#Message").val()
        }
        $.ajax({
            type: "POST",
            url: serviceURL,
            data: model,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: successFunc,
            error: errorFunc
        });
        function successFunc(data, status) {
            alert(data);
        }
        function errorFunc() {
            alert('error');
        }
    });
});

我的控制器,我有两个版本-这些版本都不能工作

[HttpPost]
public IActionResult Chat(ChatMessage model)
{
    Console.WriteLine(model.Message);
    return Json("chamara");
}

[HttpPost]
public IActionResult Chat(string Message)
{
    Console.WriteLine(Message);
    return Json("chamara");
}

谢谢你的帮助

ASP.asp.net MVC和Ajax发送数据

JSON.stringify()方法将JavaScript值转换为JSON字符串,因此您需要以Json能够"理解"的方式更改数据对于

data: JSON.stringify(model)

更多信息请看这里

看看你的代码,似乎你正试图发送一个JSON到用户控制器,但你的控制器正在期待一个字符串(控制器示例2)。

此外,通过jquery创建绑定事件的特定类(如"js-messageSend")也是一个很好的实践。如果您将来出于任何原因需要更改Message类,但忘记了它有一个事件,那么它将最大限度地减少脚本中断的机会。

试试这个:

$(document).ready(function () {
    $("#MessageSend").click(function () {
        var messageText = $("#Message").val();
        $.ajax({
            type: "POST",
            url: '/User/Chat',
            data: { Message: messageText },
            success: successFunc,
            error: errorFunc
        });
        function successFunc(data, status) {
            alert(data);
        }
        function errorFunc() {
            alert('error');
        }
    });
});