在模型内的模型列表中添加项目

时间:2013-10-10 03:22:50

标签: c# asp.net-mvc-3 razor .net-4.0

我有一个这样的模型:

public class RecipientModel
{
    public int RecipientID { get; set; }

    [Required]
    [DataType(DataType.EmailAddress)]
    [Display(Name = "Email Address")]
    public string EmailAddress { get; set; }

    [Required]
    [Display(Name = "First Name")]
    public string FirstName { get; set; }

    [Required]
    [Display(Name = "Last Name")]
    public string LastName { get; set; }

    [Display(Name = "Active?")]
    public bool Status { get; set; }

    [Required]
    [Display(Name = "Notifications")]
    public RecipientNotificationModel[] RecipientNotifications { get; set; }
}

public class RecipientNotificationModel
{
    [Required]
    [Display(Name = "Notification Type")]
    public int NotificationTypeID { get; set; }

    [Display(Name = "Notification Group")]
    public int NotificationGroupID { get; set; }

    [Required]
    [Display(Name = "Notification Category")]
    public int NotificationCategoryID { get; set; }
}

我打算做的事情是这样的:

MVC Razor - List of

我的想法是,我想在RecipientModel.RecipientNotifications上添加项目,但我遇到了此类任务的多重问题。

问题1 - 提交表格确认

我的第一个问题是,当我点击Add Notification按钮时,它会验证表单。它应该仅在单击Add Recipient按钮时进行验证。视图是这样的:

@using (Html.BeginForm()) {
    // .... recipient fields
    // Add Notification button
    // .... notification list
    // Add Recipient button
}

我想过将Add Notification按钮更改为非提交按钮,并在其上使用js,这将显示隐藏的模式html弹出窗口,如下所示:

<div id="addNotification" style="display:none">
    @using (Html.BeginForm()) {
        // ... notification fields
    }
</div>

但现在我如何检索该表单的值并将其添加到当前模型的RecipientNotifications属性中?

问题2 - 删除通知

我有searched我可以使用Html.ActionLinksubmit按钮,我可以在控制器上查看点击了哪个按钮,但这里的问题再次是它将验证只需点击删除按钮即可。

非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

1)将AngularJs与ajax一起使用。 2)您可以使用角形式进行验证。 3)使用ng-repeat添加多个表单添加收件人点击。