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) ajax で AngularJs を使用します。2) 検証に角度のあるフォームを使用できます。3) ng-repeat を使用して、受信者の追加をクリックして複数のフォームを追加します。

于 2014-04-15T10:37:24.990 に答える