添加 ModelState.AddModelError 而不重新加载页面 (mvc4)

本文关键字:加载 mvc4 新加载 AddModelError ModelState 添加 | 更新日期: 2023-09-27 18:31:41

我正在使用MVC4,我的控制器中有2个方法:

获取方法

public ActionResult Create()
{
    var vm = new User
    {
        Client= new Catastro_Cliente()
        Genre = ClienteRepository.GetGenres(),
        Type= ClienteRepository.GetTypes()
    };
    ViewBag.Genre = new SelectList(vm.Genre, "IdGenre", "Genre");
    ViewBag.Type= new SelectList(vm.Type, "IdType", "Type");
    return View(vm);
}

后法

[HttpPost]
public ActionResult CrearUsuario(Catastro_Cliente client)
{
    if(Validator(client.document))
    {
        ModelState.AddModelError("NoDocument", "The document is invalid or not registered");
    }
    if(ModelState.IsValid)
    {
        return View();
    }
}

基本上,我正在尝试保留用户在发布方法之前填写的所有数据,

我尝试了return RedirectToAction("Create");但它总是刷新页面。

添加 ModelState.AddModelError 而不重新加载页面 (mvc4)

调用 View 时,您必须传回已发布的模型。您需要的是:

[HttpPost]
public ActionResult CrearUsuario(Catastro_Cliente client)
{
    if(Validator(client.document))
    {
        ModelState.AddModelError("NoDocument", "The document is invalid or not registered");
    }
    if(ModelState.IsValid)
    {
        // save to database of whatever
        // this is a successful response
        return RedirectToAction("Index");
    }
    // There's some error so return view with posted data:
    return View(client);
}