MVC2:在表单提交包含部分视图的页面之前验证PartialView

时间:2010-05-13 11:54:12

标签: validation asp.net-mvc-2 form-submit partial-views

我正在使用asp.net mvc2,并在表单中包含一个包含部分视图的基本页面

<% using (Html.BeginForm())
   { %>
<% Html.RenderAction("partialViewActionName", "Controllername"); %>

<input type="submit" value="Weiter" />

<% } %>

当我提交表单时,会调用我的Page的httpPost Action,并在httpPost Action之后 我的部分视图称为

[HttpPost]
public virtual ActionResult PagePostMethod(myModel model)
{
    // here I should know about the validation of my partial View
    // If partialView.ModelState is valid then
    //   return View("success");
    // else return View(model)
}

[HttpPost]
public virtual ActionResult partialViewActionName(myModel model)
{
    ModelState.AddModelError("Error");
    return View(model);
}

但是当我在我的部分视图的httpPost方法中进行验证时(因为我想在几个地方使用我的部分视图)我无法确定我的孔页是否有效。

有没有人知道如何才能做到这一点?在页面中包含多个部分视图不是一项常见任务 但是在页面操作方法中有关于验证的信息吗?

非常感谢你的帮助!!

1 个答案:

答案 0 :(得分:1)

在呈现页面时将调用部分视图方法,而不是在页面发布时调用。完成帖子后将调用的唯一操作是BeginForm中指定的操作。验证将在ModelBinder中进行 - 假设您正在为模型使用DataAnnotations。在部分视图中由输入表示的模型的任何部分将在绑定期间与模型的其余部分一起进行验证。如果您手动处理验证,则需要在帖子上调用的操作中验证模型的所有部分。