Asp.net core mvc ASP.NET核心MVC AJAX
当dropdownlist的值发生变化时,我想放置一个partialview。 对于我的代码,它可以工作,但是当我想使用post方法将数据发送到控制器时,我总是有空值(控制器参数总是有空数据)。我见过很多不同的方法,但是没有人适合我 我的视图ajax代码:Asp.net core mvc ASP.NET核心MVC AJAX,asp.net-core-mvc,asp.net-ajax,Asp.net Core Mvc,Asp.net Ajax,当dropdownlist的值发生变化时,我想放置一个partialview。 对于我的代码,它可以工作,但是当我想使用post方法将数据发送到控制器时,我总是有空值(控制器参数总是有空数据)。我见过很多不同的方法,但是没有人适合我 我的视图ajax代码: @section scripts { <script type="text/javascript"> $("#ProjecteId").on("change", function () { var req
@section scripts {
<script type="text/javascript">
$("#ProjecteId").on("change", function () {
var request = JSON.stringify({
'ProjecteId': $('#ProjecteId').val()
});
console.log(request);
$.ajax({
type: 'Post',
url: '/Consultas/MostrarTipusPersona',
dataType: 'html',
contentType: 'application/json',
data: request,
success: function (data) {
console.log('sample', data);
},
error: function () {
}
});
});
</script>
首先验证客户端数据:
var request = JSON.stringify({
'ProjecteId': "'" + $('#ProjecteId').val() + "'"
});
由于未提供html,请记录您的json:
var request = ...
console.log(request);
$.ajax(...)
确保服务器端需要正确的数据
在代码中,服务器端需要一个包含字符串成员的对象。那我们就这么说吧。我们将创建一个表示要发送到服务器的json对象的对象:
public class ProjectedModel
{
public string ProjecteId {get;set;}
}
现在修改您的方法以期望使用此模型:
public IActionResult MostrarTipusPersona(ProjectedModel model)
PS:看起来您的客户端ajax方法需要json。我建议从ajax方法中删除数据类型:“json”
,因为数据类型将是partialhtml视图。(只需将其作为字符串接收,或者展开您的问题,以便我们确定。)
编辑:
var request = JSON.stringify({
'ProjecteId': "'" + $('#ProjecteId').val() + "'"
});
传递字符串值似乎是一个问题。那么,有两件事需要尝试:
(1)使用toString()方法将数据转换为字符串
var request = JSON.stringify(
{'ProjecteId': ($('#ProjecteId').val()).toString()
});
(2)像这样内联执行:
var request = JSON.stringify({
'ProjecteId': "'" + $('#ProjecteId').val() + "'"
});
当然,您的另一个选择是只发送一个整数。我有解决方案,只需输入contetType:'application/x-www-form-urlencoded'
谢谢你的帮助 我可以发现:在ajax对象的type字段中:type:“post”也请澄清从哪里得到空值?它是在Ajax的返回中还是在您发布的数据中?更多信息,我可以帮助你。嗨@Terrance00,我收到控制器中的空数据,参数ProjecteId总是空的。我已经修改了我的帖子来澄清这一点,非常感谢!首先,非常感谢您的帮助:)请求包含以下数据:{“ProjecteId”:“2”},我认为它是正确的。模型ProjecteModel(不带[FromBody])不是空的,但是属性ProjecteId有一个空值:(正确的数据类型是html,它可以工作(数据类型:“html”),我已经更改了它,只是为了尝试其他方法。如果我使用[FromBody]ProjecteModel为空。我以为你特别想发送json。无论如何,编辑现在应该可以了。好吧,你想发送json的时候到了——上面的答案可以作为你的指南。祝你编码愉快。