13-通过特性来约束模型绑定

我们可以给实体属性增加以下标注特性来约束模型绑定的行为的。

比如我们规定某个字段必须有绑定。否则报错。

或者我们规定某个字段不能绑定。否则我们规定某个数据只能从FormBody中绑定或者从FormHeader中绑定。

//增加这个标注 则这个属性就不会被绑定
[BindNever]
public int Id { get => id; set => id = value; }

//增加这个标注 则这个属性 必须绑定 如果没有绑定 则会抛出错误的
[BindRequired]
public string Name { get => name; set => name = value; }Code language: PHP (php)
[HttpPost]
public IActionResult Register([ModelBinder]UserInfo userInfo)
{
    if (ModelState.IsValid)//如果name 没有绑上 则这个IsValid 就为false
    {

    }
    //不用模型绑定 以前的方式取表单数据或者URL中的参数
    string s1 = HttpContext.Request.Form["name"]; //post的数据用form
    string s2 = HttpContext.Request.Query["id"];//地址栏get的数据用query 
    return View();
}Code language: PHP (php)

注意 这里的不能绑定 意思是没有这个表单字段。而不是说这个字段为null

我们把这个input注释掉 就会有效果

@{
    ViewData["Title"] = "Register";
}

<h2>注册</h2>
<form method="post">
    @*<input type="text" name="name" />*@
    <input type="text" name="age" />
    <input type="submit" value="提交" />
</form>Code language: HTML, XML (xml)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注