如何将对话框中的数据发送到控制器?模型绑定?
我能举个例子吗?
答案 0 :(得分:1)
我在此基于您之前对ASP.NET MVC感兴趣并且正在使用jQuery UI对话框的问题做出一些假设。此外,我猜你想要在不重新加载页面的情况下提交数据 - 即,应该关闭对话框并返回原始页面。
最简单的方法是在对话框中创建一个表单,并通过AJAX提交该表单。我建议您通过加载部分视图的控制器操作填充对话框。这样可以更简单地为对话框生成标记。为对话框的内容区域提供一个类,使其在创建对话框后易于查找,然后在对话框中打开处理程序,通过加载到控制器操作来替换内容区域内的HTML。使用对话框上的按钮提交表单。
$(function() {
$('.someSelector').click( function() {
$('<div title="Update Contacts"><p class="dialog-content"></p></div>').dialog({
autoOpen: true,
modal: true,
open: function() {
$(this).find('.dialog-content')
.load( '<%= Url.Action( "show", "contact", new { id = Model.UserID } ) %>',
function() {
$(this).find('form').submit( function() {
return false;
}
}
);
}
buttons: function() {
'Update': function() {
var $this = $(this);
var form = $this.find('form');
$.post( form.attr('action'), form.serialize(), function(){
$this.dialog('destroy');
});
},
'Cancel': function() {
$(this).dialog('destroy');
}
}
});
});
});
部分视图
<% using (Html.BeginForm( "update", "contact", null, FormMethod.Post, new { id = "contact-form" } )) { %>
<%= Html.EditorForModel() %>
<% } %>