在操作方法中,我在ajax post调用后没有获取值

问题描述 投票:0回答:1
var obj = {
    RdEmail: useremailid,
    RduserName: username,
    RduserPassword: userpassword,
    RdGender: gender
};
-----------1----------------------
$.ajax({
    url: "Registration/AddData",
    type: "POST",
    data: JSON.stringify(obj),
    dataType: "json",
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    success: function (result) {
        if (result)
        {  
            alert("Registration Succesfull");
            location.reload();
        }
    },
    error: function (xhr) {
       
        alert('Error: ' + xhr.statusText);
    },
});
----------2----------------------
$.ajax({
       url: 'Registration/AddData',
       type: 'post',
       data: JSON.stringify(obj),
       dataType: 'json',
       contentType: 'application/json chartset=utf-8',
       success: function (result) {

         },
        error: function (xhr) {

          alert('Erro:' + xhr.statusText);
     });


--- Action method ---
[HttpPost]
public ActionResult AddData(RegistrationData obj) 
{
    return Json(obj);
}

obj
中我得到的都是空值。

我需要知道问题是什么,以及如何解决它。

asp.net-mvc methods action
1个回答
0
投票

换乘方式不止一种!你应该决定哪一个!

称为 dotnet 模型绑定的问题解决方案。

如果您发布 JSON 使用 [FromBody],发布表单用户 [FromForm] 在参数类型之前! https://learn.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-8.0#sources

在客户端,我猜有一个混乱! 如果您需要以表格形式发送文件 这对你来说是件好事

contentType: "application/x-www-form-urlencoded; charset=UTF-8",

但是这种方式不能用

data: JSON.stringify(obj),
dataType: "json",

问题;数据应该是 FormData 的形式,所以它不是 JSON

第二种方式是(如果您不需要发送数据+文件)

data: JSON.stringify(obj),
dataType: 'json',
contentType: 'application/json chartset=utf-8',
© www.soinside.com 2019 - 2024. All rights reserved.