我有一个这样的模型:
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; }
}
我打算做的是这样的:
我的想法是我想在上面添加项目,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.ActionLink
的submit
按钮,或者我可以在控制器上检查单击了哪个按钮的按钮,但这里的问题再次是它会通过单击删除按钮来验证表单。
任何帮助是极大的赞赏。提前致谢。