【发布时间】:2020-04-26 09:04:22
【问题描述】:
我正在使用带有 MVC 的 ASP.NET Core 开发 Web 应用程序。处理来自 HTML form 的 POST 请求的控制器的操作通常接受用作绑定模型的参数,例如:
[HttpPost]
public IActionResult Edit(ModelBindingClass userInput)
我发现绑定模型的类,在上面的例子ModelBindingClass,必须遵守两个条件:
- 有一个无参数的构造函数
- 具有可公开设置的属性来存储用户输入
我想第一个条件是确保 MVC 中间件可以轻松实例化一个对象。
但是为什么它不能使用公共字段而不是属性呢?
public class ModelBindingClass
{
public int Age { get; set; } // binder will set it correctly
public int Height; // binder will not
}
欢迎任何指向相关源代码的答案。谢谢! :-)
【问题讨论】:
-
属性用于公共的东西,它们也给你更多的控制权。您可以格式化值、进行查找等。
-
这能回答你的问题吗:stackoverflow.com/questions/7789674/…
标签: c# properties asp.net-core-mvc field model-binding