加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

当验证失败时,ASP.NET MVC如何在表单中重新填充值?

发布时间:2020-12-16 07:24:33 所属栏目:asp.Net 来源:网络整理
导读:在Web表单中,使用视图状态.但是在ASP.NET MVC中,由于模型绑定可用,因此可以在控制器中轻松地访问属性.但是,当模型验证失败时,ASP.NET MVC会自动填充表单控件,以实现验证失败吗? 或者还有其他方法可以实现这一目标. 解决方法 有一个名为ModelState的属性(在C
在Web表单中,使用视图状态.但是在ASP.NET MVC中,由于模型绑定可用,因此可以在控制器中轻松地访问属性.但是,当模型验证失败时,ASP.NET MVC会自动填充表单控件,以实现验证失败吗?

或者还有其他方法可以实现这一目标.

解决方法

有一个名为ModelState的属性(在Controller类中),它包含所有值.它用于模型绑定.验证失败时,ModelState会保留所有带有验证错误的值.

ModelState.IsValid告诉您,验证没有抛出任何错误.

ModelState.Values包含所有值和错误.

编辑

Ufuk的例子:

查看型号:

public class EmployeeVM
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

操作:

[HttpGet]
public ActionResult CreateEmployee()
{
    return View();
}

[HttpPost]
public ActionResult CreateEmployee(EmployeeVM model)
{
    model.FirstName = "AAAAAA";
    model.LastName = "BBBBBB";
    return View(model);
}

视图:

@model MvcApplication1.Models.EmployeeVM

@using (Html.BeginForm("CreateEmployee","Home")) {
    @Html.EditorFor(m => m)
    <input type="submit" value="Save"/>
}

如您所见,在POST方法中,值被AAAAA和BBBBB覆盖,但在POST后,表单仍显示已发布的值.它们取自ModelState.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读