4

我有一个这样的模型:

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 - 列表

我的想法是我想在上面添加项目,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 - 删除通知

我已经搜索了我可以使用Html.ActionLinksubmit按钮,或者我可以在控制器上检查单击了哪个按钮的按钮,但这里的问题再次是它会通过单击删除按钮来验证表单。

任何帮助是极大的赞赏。提前致谢。

4

1 回答 1

0

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

于 2014-04-15T10:37:24.990 回答