gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:03:47 27 4
gpt4 key购买 nike

在 Web 表单中使用 View 状态。但是在 ASP.NET MVC 中,由于模型绑定(bind)可用,因此可以在 Controller 中轻松访问属性。但是,当模型验证失败时,ASP.NET MVC 是否会自动填充表单控件以实现验证失败?

或者有没有其他方法可以做到这一点。

最佳答案

有一个属性叫做 ModelState (在 Controller 类中),它包含所有值。它用于模型绑定(bind)。验证失败时,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 .

关于asp.net - 验证失败时,ASP.NET MVC 如何在表单中重新填充值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17123091/

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