gpt4 book ai didi

c# - 为什么发布到此 ASP.net MVC 发布到 Controller 会导致空模型?

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:54 24 4
gpt4 key购买 nike

在下面的代码中,Product 对象总是设置为 null - 但如果我调试,我可以看到值被正确发布。怎么回事?

型号:

public class Product {
public string Name { get; set; }
public string Model { get; set; }
}

Controller :

[HttpPost]
public ActionResult NewProduct(Product model) {
if (model == null) { throw new NullReferenceException("model is null D:"); }
// Do other things
return View();
}

查看:

@using (Html.BeginForm("NewProduct", "Home")) {

<table>
<tr>
<td>Name</td>
<td>@Html.EditorFor(model => model.Name)</td>
</tr>
<tr>
<td>Model</td>
<td>@Html.EditorFor(model => model.Model)</td>
</tr>
</table>
<input type="submit" value="Add" />
}

最佳答案

重命名 Controller Action 的参数

Controller 方法的参数不能与模型的任何属性命名相同,否则绑定(bind)器将无法正确绑定(bind)

[HttpPost]
public ActionResult NewProduct(Product newProduct) {
if (newProduct == null) { throw new NullReferenceException("model is null D:"); }
// Do other things
return View();
}

注意:此比较不区分大小写 - 这里的参数是 model 并且对象具有 Model 属性,但它仍然出错。

关于c# - 为什么发布到此 ASP.net MVC 发布到 Controller 会导致空模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24660673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com