我遇到了这个问题,我在部分视图中有一个表单,但是在验证时它会跳出父视图并单独出现(具有提交操作 url)。
我还尝试了 Render.Action,其中验证根本不会触发。
我正在使用 ASP.NET MVC 2 RC,需要使用内置验证进行服务器端验证。有人有什么建议吗?
谢谢
代码部分视图:
<%=Html.ValidationSummary() %>
<% using (Html.BeginForm("Edit", "Category", FormMethod.Post))
{%>
<fieldset>
<legend>Edit category</legend>
<p>
<label for="CategoryName">Category name:</label>
<%= Html.TextBox("CategoryName", Model.CategoryName)%>
<%= Html.ValidationMessage("CategoryName", "*")%>
</p>
<p class="submit">
<input type="submit" value="Edit" />
<%=Html.AntiForgeryToken()%>
<%= Html.Hidden("CatId", Model.Id)%>
</p>
</fieldset>
<% }
模型属性:
[Required(ErrorMessage="Required")]
public string CategoryName { get; set; }
编辑动作:
[ValidateAntiForgeryToken]
[HttpPost()]
public ActionResult Edit(int catId, CategoryPageViewModel categoryModel)
{
if (ModelState.IsValid)
{
//TODO
}
return View("list", categoryModel);
}