它们是否更改了AspNetCore中的某些内容,这些内容不再允许您在POST操作中使用参数名称“ model”?
如果执行此操作,则会在回发时填充DeviceModel属性值:
[HttpPost]
public IActionResult Create(DeviceModel device)
但是,如果我将参数名称从“ device”更改为“ model”,则属性值为null。
[HttpPost]
public IActionResult Create(DeviceModel model)
这是AspNetCore中的错误还是它们有更改?
我找不到任何不能说该参数称为“模型”的信息,在以前的MVC版本中,此方法很好用。
答案 0 :(得分:1)
请记住,您还可以执行以下操作:
[HttpPost]
public IActionResult Create(string model)
这将采用发布为“模型”的键并获取其字符串值。根据您的评论,您在课程中拥有一个名为Model
的属性。这意味着您发布的数据包含名为“模型”的键。
框架首先尝试反序列化发布的Model
的值,并将其值分配给DeviceModel model
,因为名称匹配。反序列化失败后,您将拥有一个带有默认值的model
对象。