簡體   English   中英

ASP.NET MVC和Ajax發送數據

[英]ASP.NET MVC And Ajax Send Data

我嘗試將數據發送到控制器。 控制器將所有數據正確地發送到客戶端,但不會從客戶端到控制器。

我的前端代碼:

$(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");
}

謝謝你的幫助。

JSON.stringify()方法將JavaScript值轉換為JSON字符串,因此您需要以Json可以“理解”數據的方式來更改數據,以便

data: JSON.stringify(model)

有關更多信息,請看這里

查看您的代碼,似乎您正在嘗試將JSON發送給User控制器,但是您的控制器需要一個字符串(控制器示例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');
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM