jquery 将数据从数据库发送到控制器不会将值发送到控制器

drnojrws  于 5个月前  发布在  jQuery
关注(0)|答案(1)|浏览(55)

我一直在尝试将JSON数据传递到MVC控制器中,到目前为止还没有工作。
控制器方法的属性为model likenewObject,如下所示

[HttpPost]
public ActionResult Create(NewObject newObject)
{
     try
     {
         //_deviceMangementService.CreateDevices(newObject.Name,1); // name is always null here
         return RedirectToAction(nameof(Index));
     }
     catch
     {
         return View();
     }
}

字符串
解决这个问题的关键点是将JSON对象字符串化,定义一个模型并获取参数作为定义的模型,或者定义contentType。当它命中控制器时,我在name中获得null值,并且DeviceId为0。
我做了这些,但定义了一个模型,将JSON传递到控制器。

var newObject= {};
        newObject.DeviceId=1;
        newObject.Name = "testds";
$.ajax({
     type: 'POST',         
     url: '@Url.Action("Create","DeviceConfiguration")',
     data: { newObject: JSON.stringify(newObject) },
     dataType: 'JSON',
     contentType: 'application/json; charset=utf-8',
     success: function (data) {
         if (data.success) {
             alert('Saved');;
         }
     },
     error: function (e) {
         console.log(e);
     }
 });


我从网络上得到有效载荷,

newObject=%7B%22DeviceId%22%3A1%2C%22Name%22%3A%22testds%22%7D


有没有其他方法可以从控制器中的Ajax调用中获取JSON数据,或者我做错了什么,我不知道。请指导我。

fzwojiic

fzwojiic1#

我认为您应该更改由aerospace发送的数据:

data: JSON.stringify(newObject)

字符串
所以控制器可以绑定模型中的属性。

相关问题