textboxfor默认值并在验证失败后保持编辑值



剃须刀代码类似:

@Html.TextBoxFor(Model => Model.Name, new { @Value = student.t_Name })

和我在控制器中使用.NET MVC的模型验证,

    if (ModelState.IsValid)
    {
        return RedirectToAction("B");
    }
    else 
    {
        return View(); // when validation failed
    }

我的情况是我有一个编辑功能,例如:原始数据:

birthday: 1992-05-26

编辑后:

birthday: 1992-05-32

我将其提交给控制器并进行模型验证后,它将验证失败,然后返回以前的视图(在表单提交之前的视图),我想要它显示

birthday:1992-05-32

而不是

birthday:1992-05-26

您应该设置像这样的控制器的ViewModel值:

public ActionResult YourControllerMethod(YourViewModel model)
{
    if (ModelState.IsValid)
    {
        return RedirectToAction("B");
    }
    else 
    {
        ViewData.Model = model; //where model is your controller model
        return View(); // when validation failed
    }
}

您需要将当前发布的模型实例传递回视图时的视图:

public ActionResult YourAction(SomeModel model)
{
   if (ModelState.IsValid)
   {
     return RedirectToAction("B");
   }
   else 
   {
    return View(model);
   }
}

最新更新