如何解决从视图到控制器的 Ajax 请求正文在 ASP NET Core MVC 3
我有一个场景,我想在 ASP NET Core MVC 3 中从视图到控制器进行 ajax 调用。然后控制器应该返回部分视图作为响应。主要问题是,当数据通过 ajax post 请求传递给控制器时,控制器发现数据为空。我已经搜索了很多关于这个主题的在线内容,但没有一个解决方案适合我。
这是我的控制器方法:
[HttpPost]
public PartialViewResult AddUserForm(string firstName,string lastName)
{
// some stuff happens then
return PartialView();
}
查看我的 Ajax 发布方法:
<script>
function replaceContentsOfDiv() {
var f = $('#fName').val();
var l = $('#lName').val();
$.ajax({
url: '@Url.Action("AddUserForm","Reservation")',contentType: 'application/json',data: JSON.stringify({ firstName: this.f,lastName: this.l }),type: "POST",success: function(data) {
$('#placeHolderDiv').html(data);
},error: function() {
alert("something is wrong");
}
});
}
</script>
来自这个 js 脚本的数据(var f
和 var l
具有有效值。但是,如果我想在控制器方法中注销 string firstName
和 string lastName
,它们是都为空。这可以用 I.e. logger.Loginformation((firstName == null).ToString())
.
有谁知道我做错了什么,以至于传入控制器的数据为空?我什至尝试向 [FromBody]
参数添加 AddUserForm
注释,但也没有成功。
编辑:修复了我的 JS 脚本中的一些错字。
解决方法
你只需要像下面这样改变你的ajax:
$.ajax({
url: '@Url.Action("AddUserForm","Reservation")',data: {
firstname: f,lastname: l
},type: "POST",success: function(data) {
$('#placeHolderDiv').html(data);
},error: function() {
alert("something is wrong");
}
});
,
然后我找到了解决方案。问题是如何调用请求。然后我就使用了这样的常规 jQuery post 方法:
<script>
function replaceContentsOfDiv() {
let data = {
firstName: document.getElementById("fName").value,lastName: document.getElementById("lName").value
}
console.log(data);
$.post('@Url.Action("AddUserForm",data,function (data) {
$('#placeHolderDiv').html(data);
});
};
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。