当操作参数称为“模型”时,模型属性值在POST上为空

时间:2018-08-07 21:50:53

标签: c# asp.net-core

它们是否更改了AspNetCore中的某些内容,这些内容不再允许您在POST操作中使用参数名称“ model”?

如果执行此操作,则会在回发时填充DeviceModel属性值:

[HttpPost] 
public IActionResult Create(DeviceModel device)

但是,如果我将参数名称从“ device”更改为“ model”,则属性值为null。

[HttpPost]
public IActionResult Create(DeviceModel model)

这是AspNetCore中的错误还是它们有更改?

我找不到任何不能说该参数称为“模型”的信息,在以前的MVC版本中,此方法很好用。

1 个答案:

答案 0 :(得分:1)

请记住,您还可以执行以下操作:

[HttpPost]
public IActionResult Create(string model)

这将采用发布为“模型”的键并获取其字符串值。根据您的评论,您在课程中拥有一个名为Model的属性。这意味着您发布的数据包含名为“模型”的键。
框架首先尝试反序列化发布的Model的值,并将其值分配给DeviceModel model,因为名称匹配。反序列化失败后,您将拥有一个带有默认值的model对象。