如何在查看某个模型的详细信息时验证其他模型?

时间:2011-06-14 14:44:38

标签: jquery asp.net-mvc-2 validation

我正在显示一个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" />
    <% } %>

1 个答案:

答案 0 :(得分:0)

一种选择是将您的“新演员”表单放入一个单独的部分视图中,该部分视图使用Actor作为其模型,然后调用Html.RenderPartial来呈现它。那就是我要做的。

这对AJAX非常有效,因为您只需验证模型并返回部分视图,并在失败时启用验证方法。成功后,您可以返回显示新Actor的局部视图,然后返回“new actor”表单的新实例。