将JSON模型发布到WebAPI控制器方法时,我注意到如果JSON模型中有空对象,模型绑定器将实例化这些项,而不是在服务器端对象中保留它们.
这与普通MVC控制器如何绑定数据形成对比...... 如果对象在JSON中为null,则不会实例化对象.
MVC控制器
public class HomeController : Controller
{
[HttpPost]
public ActionResult Test(Model model)
{
return Json(model);
}
}
Run Code Online (Sandbox Code Playgroud)
WebAPI控制器
public class APIController : ApiController
{
[HttpPost]
public Model Test(Model model)
{
return model;
}
}
Run Code Online (Sandbox Code Playgroud)
将获得POST的模型类
public class Model
{
public int ID { get; set; }
public Widget MyWidget { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Model类中使用的类
public class Widget
{
public int ID { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我将JSON模型发布到每个控制器时,这是我的结果: …