Asp.net core AJAX post没有';Net内核发送数据
我有下面的脚本Asp.net core AJAX post没有';Net内核发送数据,asp.net-core,.net-core,asp.net-core-mvc,asp.net-ajax,Asp.net Core,.net Core,Asp.net Core Mvc,Asp.net Ajax,我有下面的脚本@username是来自模型的变量 <script> var username = "@username" $.ajax({ url: '@Url.Action("fetchChatsForUser")', data: { Username:
@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
始终为空,即使我在ajax中传递数据。不过,该方法确实会被调用。这里我做错了什么您的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>
var username=“@username”;
$.post('@Url.Action(“fetchChatsForUser”),{Username:Username}).done(函数(e){
控制台日志(e);
$(“#聊天室”).html(e);
});
您的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>
var username=“@username”;
$.post('@Url.Action(“fetchChatsForUser”),{Username:Username}).done(函数(e){
控制台日志(e);
$(“#聊天室”).html(e);
});
因为它来自身体,所以您可以这样更改
Ajax,添加JSON.stringify(用户名)
巴克德
[HttpPost]
public IActionResult fetchChatsForUser([FromBody]string Username)
{
Chat Chats = new Chat();
return PartialView("_Chatroom", Chats);
}
结果
因为它来自身体,所以你可以这样改变 Ajax,添加
JSON.stringify(用户名)
巴克德
[HttpPost]
public IActionResult fetchChatsForUser([FromBody]string Username)
{
Chat Chats = new Chat();
return PartialView("_Chatroom", Chats);
}
结果
仍然为空。仍然为空。这解决了问题。我有另一个函数在我的控制器中调用相同的方法。现在这不起作用了,
$(document).on(“click”,“.shadow-inner.block.rounded-l.h-auto.border-b-2.mt-2.cursor-pointer”,函数(){$.post('@Url.Action(“fetchChatsForUser”),{Username:$(this.data(“Username”)}).done(函数(e){$(“#聊天室”).html(e);})
您只需在按钮中输入新的css类名,而不是键入许多css类。例如,View.$(document)。在(“click”、“.btn fetch user”、function(){})上,还要确保按钮的数据用户名有值。另一种方法是将函数添加到按钮中。View.function FetchUser(btn){$.post(..);}这解决了您的问题吗?如果解决了,可以将其标记为已解决。谢谢。这解决了问题。我的控制器中有另一个调用相同方法的函数。现在它不起作用了。$(document)。在(“click”、“.shadow inner.block.rounded-l.h-auto.border-b-2.mt-2.cursor pointer”,函数(){$.post('@Url.Action(“fetchchatsforser”),{Username:$(this.data(“Username”)}).done(函数(e){$(“#聊天室”).html(e);})
您只需在按钮中输入新的css类名,而不用键入许多css类。例如,View.$(文档)。在(“单击“,”.btn fetch user”,函数(){});并确保按钮的数据用户名有值。另一种方法是向按钮添加函数。View.function FetchUser(btn){$.post(..);}这解决了您的问题吗?如果解决了,可以将其标记为已解决。谢谢。