C# 当调用“action”参数时,POST上的模型属性值为空;模型";
他们是否更改了AspNetCore中不再允许您在POST操作中使用参数名“model”的内容 如果执行此操作,则在回发时填充DeviceModel属性值:C# 当调用“action”参数时,POST上的模型属性值为空;模型";,c#,asp.net-core,C#,Asp.net Core,他们是否更改了AspNetCore中不再允许您在POST操作中使用参数名“model”的内容 如果执行此操作,则在回发时填充DeviceModel属性值: [HttpPost] public IActionResult Create(DeviceModel device) 但是,如果我将参数名称从“device”更改为“model”,则属性值为null [HttpPost] public IActionResult Create(DeviceModel model) 这是AspNetCor
[HttpPost]
public IActionResult Create(DeviceModel device)
但是,如果我将参数名称从“device”更改为“model”,则属性值为null
[HttpPost]
public IActionResult Create(DeviceModel model)
这是AspNetCore中的一个bug还是他们改变了什么
我找不到任何东西表明该参数不能被称为“model”,并且在以前的MVC版本中,这很好。请记住,您还可以执行以下操作:
[HttpPost]
public IActionResult Create(string model)
这将获取作为“model”发布的键,并获取其字符串值。根据您的注释,您的类中有一个名为Model
的属性。这意味着您发布的数据包含一个名为“model”的键。框架首先尝试反序列化发布的
模型的值
,并将其值分配给设备模型
,因为名称匹配。反序列化失败后,您将拥有一个具有默认值的model
对象。您尝试过其他名称吗?当您的DeviceModel
中有一个名为model
的属性时,通常会发生这种情况。@Mate是的,似乎只有“model”有问题。@NevilleNazerane有趣的是,我的DeviceModel确实有一个model属性。刚刚删除了该属性并尝试了它。。。作品这是一个bug吗?奇怪的是,我模型中的一个属性破坏了它。这不是一个bug。这实际上是有道理的。如果您打算序列化字符串。奇怪的是,几天前我就遇到了这个问题,我发现这是故意的,是的。。。当您需要以数组等形式传递列表时,此逻辑实际上非常有用。js可以序列化和post。