Я делаю некоторые предположения на основе ваших предыдущих вопросов, которые вас интересуют в 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() %>
<% } %>