我正在显示一个Movie模型的详细信息页面,其中包含相关(子元素)Actor模型的列表。
在Actor列表的底部,我正在渲染一个文本框,用于快速插入与当前Movie相关的新Actor,这样可以正常工作。
但是,如何验证(客户端和服务器)actor名称的文本框,以便在提交时不为空?
我正在使用Linq2SQL和DataAnnotations:
[MetadataType(typeof(ActorValidation))]
partial class Actor
{
}
public class ActorValidation
{
[Required(ErrorMessage = "You forgot the name.")]
public string Name{ get; set; }
}
这是电影详细信息视图中的表单:
<%
Html.EnableClientValidation();
using (Html.BeginForm("NewActor", "Movie"))
{
%>
<%= Html.Hidden("MovieId", Model.Id) %>
<%= Html.TextBox ("Name")%>
<%= Html.ValidationMessage("Name") %>
<br />
<input type="submit" value="Add" />
<% } %>
答案 0 :(得分:0)
一种选择是将您的“新演员”表单放入一个单独的部分视图中,该部分视图使用Actor作为其模型,然后调用Html.RenderPartial
来呈现它。那就是我要做的。
这对AJAX非常有效,因为您只需验证模型并返回部分视图,并在失败时启用验证方法。成功后,您可以返回显示新Actor的局部视图,然后返回“new actor”表单的新实例。