Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当调用“action”参数时,POST上的模型属性值为空;模型";_C#_Asp.net Core - Fatal编程技术网

C# 当调用“action”参数时,POST上的模型属性值为空;模型";

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

他们是否更改了AspNetCore中不再允许您在POST操作中使用参数名“model”的内容

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

[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。