net core mvc 数据绑定 《1》
其它的绑定 跟net mvc 一样
》》MVC core 、framework 一样
1 模型绑定数组类型
2 模型绑定集合类型
3 模型绑定复杂的集合类型
4 模型绑定源
》》》》
模型绑定
使用输入数据的原生请求集合是可以工作的【request[],Querystring,request.from[]】,
但是从可读性和可维护性的角度来看,更好的方法是使用专门的模型来把数据公开给控制器。这种模型有时被称为 【输入模型】。
Asp.net MVC 提供了一个自动绑定层,使用内置的规则集将来自各种值提供程序的原始请求数据映射到输入模型类的属性。
作为开发人员,主要负责输入模型类的设计。
Core 模型绑定
FromForm特性
[FromForm]特性告诉模型绑定从提交的表单域中获取值,
模型绑定首先在表单数据中搜索值,因此大多数情况下我们不需要添加这个特性
》》》声明一个Model
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
}
FromBody
数据模型
public Class UserInfo
{
//增加这个标注 则这个属性不会被绑定
[BindNever]
public int Id { get => id; set => id = value; }
private string name;
private string password;
public string Name { get => name; set => name = value; }
public string Password { get => password; set => password = value; }
//增加这个标注 则这个属性必须被绑定,如果没绑定 控制器中 ModelState.IsValid==false
//将 用户名输入框注释,可测试这个标注
[BindRequired]
public string Name { get => name; set => name = value; }
}
public IActionResult DoRegister(UserInfo userInfo)
{
if (ModelState.IsValid==false)
{
string message=ModelState.Root.Children[0].Errors[0].ErrorMessage;
}
return View();
}
其他验证
[Required];必填的属性。
[Compare]:验证模型中的两个性是否匹配
[StringLength]:验证字符串属性的最大长度
数据验证