AJAX post 不发送数据.Net Core
AJAX post doesn't send data .Net Core
我有以下脚本。 @username
是来自模型的变量。
<script>
var username = "@username"
$.ajax({
url: '@Url.Action("fetchChatsForUser")',
data: { Username: username },
type: "POST",
dataType: 'JSON',
contentType: "application/json",
success: function (e) {
console.log(e);
$("#Chatroom").html(e)
},
error: function (passParams) {
console.log("Error is " + passParams);
}
})
</script>
我检查了 username
的值,它不为空或 null,它正在工作。但是在我的控制器中,当 fetchChatsForUser
被 ajax
调用时,发送的数据为空。
这是控制器
public IActionResult fetchChatsForUser(string Username)
{
Chat Chats = new Chat();
return PartialView("_Chatroom", Chats);
}
即使我在 ajax 中传递数据,控制器中的 string Username
始终为空。尽管确实调用了该方法。我在这里做错了什么
您的 ajax 使用 POST 并且您的函数是 Get。所以你需要把 [HttpPost]
[HttpPost]
public IActionResult fetchChatsForUser(string Username)
或者你试试这个jquery一个。
<script>
var username = "@username";
$.post('@Url.Action("fetchChatsForUser")', { Username: username }).done(function (e) {
console.log(e);
$("#Chatroom").html(e);
});
</script>
因为是body,所以可以这样改
Ajax, 添加 JSON.stringify(username)
.
var username = "@username"
$.ajax({
url: '@Url.Action("fetchChatsForUser")',
data: JSON.stringify(username),
type: "POST",
dataType: 'JSON',
contentType: "application/json",
success: function (e) {
console.log(e);
//$("#Chatroom").html(e)
},
error: function (passParams) {
console.log("Error is " + passParams);
}
})
烘焙
[HttpPost]
public IActionResult fetchChatsForUser([FromBody]string Username)
{
Chat Chats = new Chat();
return PartialView("_Chatroom", Chats);
}
结果
我有以下脚本。 @username
是来自模型的变量。
<script>
var username = "@username"
$.ajax({
url: '@Url.Action("fetchChatsForUser")',
data: { Username: username },
type: "POST",
dataType: 'JSON',
contentType: "application/json",
success: function (e) {
console.log(e);
$("#Chatroom").html(e)
},
error: function (passParams) {
console.log("Error is " + passParams);
}
})
</script>
我检查了 username
的值,它不为空或 null,它正在工作。但是在我的控制器中,当 fetchChatsForUser
被 ajax
调用时,发送的数据为空。
这是控制器
public IActionResult fetchChatsForUser(string Username)
{
Chat Chats = new Chat();
return PartialView("_Chatroom", Chats);
}
即使我在 ajax 中传递数据,控制器中的 string Username
始终为空。尽管确实调用了该方法。我在这里做错了什么
您的 ajax 使用 POST 并且您的函数是 Get。所以你需要把 [HttpPost]
[HttpPost]
public IActionResult fetchChatsForUser(string Username)
或者你试试这个jquery一个。
<script>
var username = "@username";
$.post('@Url.Action("fetchChatsForUser")', { Username: username }).done(function (e) {
console.log(e);
$("#Chatroom").html(e);
});
</script>
因为是body,所以可以这样改
Ajax, 添加 JSON.stringify(username)
.
var username = "@username"
$.ajax({
url: '@Url.Action("fetchChatsForUser")',
data: JSON.stringify(username),
type: "POST",
dataType: 'JSON',
contentType: "application/json",
success: function (e) {
console.log(e);
//$("#Chatroom").html(e)
},
error: function (passParams) {
console.log("Error is " + passParams);
}
})
烘焙
[HttpPost]
public IActionResult fetchChatsForUser([FromBody]string Username)
{
Chat Chats = new Chat();
return PartialView("_Chatroom", Chats);
}
结果