我有一个域聚合,它使用普通的“编辑”视图中的视图模型显示。根对象是,它有一个类型为Client
的嵌套属性。推荐人的名字和姓氏显示在客户端编辑视图中,但如果推荐联系人不在系统中,我需要用户能够生成“创建联系人”对话框。我正在尝试在带有 Contact 对象的部分视图的 jQuery 对话框中执行此操作。问题是,如果我将生成“创建联系人”对话框的按钮放在对象的字段集中,则该对话框不起作用。简化代码:Referrer
Contact
Client
剃刀:
@using(Html.BeginForm()){
@Html.ValidationSummary(true)
<fieldset>
<table>
<tr>
<td>
Client Name:
@Html.TextBoxFor(m => m.ClientName)
</td>
<td>
Referred By:
@Html.TextBoxFor(m => m.ReferrerName)
<button id="createContact">New...</button>
</td>
</tr>
</table>
<div class="lower-right-button">
<input type="submit" value="Save" />
</div>
</fieldset>
}
<div id="createContactDialog" title="Create Contact" style="overflow: hidden;"></div>
jQuery:
$(document).ready(function() {
$("#createContactDialog").dialog({
autoOpen: false,
resizable: false,
width: 400,
title: "Create Contact",
modal: true,
open: function(event, ui){
$(this).load("@Url.Action("CreateContactPartial", "Contact")");
},
buttons: {
"Cancel": function() {
$(this).dialog("close");
}
}
});
$("#createContact")
.button()
.click(function() {
$("#createContactDialog").dialog("open");
});
});
如果我将createContact
按钮移出 的范围Html.BeginForm
,则对话框会正确显示,但按钮的位置并不靠近我需要的位置。如果我在上面的示例中保留按钮,则对话框会显示一秒钟,然后自行关闭。有什么方法可以让我在里面有按钮来启动“创建联系人”对话框Html.BeginForm
?如果没有,是否有其他选项可以在不破坏 DOM 的情况下将按钮放在我想要的位置?