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");
}
谢谢你的帮助
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');
}
});
});