MVC Html.ValidationMessage未在更新时触发

时间:2009-06-18 21:46:05

标签: asp.net-mvc validation

我遇到的问题是我的验证消息在添加操作中显示正常,但是当涉及到更新页面时,验证消息未显示:

这是我的操作,IsValid显示为false,操作重定向到编辑视图,但没有显示任何验证消息。我的方法有问题吗?

   [Authorize]
    public ActionResult UpdateCar(CarDTO car)
    {
        try
        {
            _carTask.Update(car); //required Name field not set
        }
        catch (RulesException ex)
        {
            ex.AddModelStateErrors(ModelState, null);
        }

        if (!ModelState.IsValid)
        {
            return RedirectToAction(ViewNames.EditCar, new {carKey = car.carKey});
        }
        return RedirectToAction(ViewNames.Home, new {carKey =   car.carKey});
    }


 <li>
    <label for="Name">Car Name:</label>
    <%= Html.TextBoxFor(x => x.Name, new { watermark="Car Name" })%>
      <br />
       <%= Html.ValidationMessage("Name") %>
 </li>

1 个答案:

答案 0 :(得分:2)

如果表单无效,那么您将重定向到新页面,该页面将丢失您设置的任何模态错误值。而只是返回视图。没有检查语法,但是如下所示。

if (!ModelState.IsValid)
{
    return View(ViewNames.EditCar, new {carKey = car.carKey});
}

return RedirectToAction(ViewNames.Home, new {carKey =   car.carKey});