Как открыть частичное представление, используя модальное всплывающее окно jquery в asp.net MVC? - PullRequest
3 голосов
/ 12 октября 2009

У меня есть частичное представление, которое я хочу открыть с помощью JQuery Modal Popup. Нет проблем при открытии представления для новой записи, но я хочу передать данные в это частичное представление для редактирования. Каков ваш лучший способ реализовать это?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 12 октября 2009

У меня это хорошо работает в моем текущем проекте.

Частичное представление использует разметку элемента управления Inherits точно так же, как полное представление, чтобы строго типизировать объект Model для типа данных.

Вот очень простой пример частичного представления, которое возвращается через ajax-вызов и помещается в div. Цель этого частичного представления - показать текстовое сообщение, которое передано ему.

LiteralMessage.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<!-- LiteralMessage.ascx start -->
<%= Model %>
<!-- LiteralMessage.ascx end -->

Метод контроллера

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ReturnId(int id)
{
    return PartialView("LiteralMessage", string.Format("Hello world! Id: {0}", id));
}

Обратите внимание, что в частичном представлении страницы может быть любой сложный объект.

Надеюсь, это поможет!

РЕДАКТИРОВАТЬ: и поскольку это также указано в jQuery, используйте его как событие success вашего ajax. (Предполагается, что в вашем диалоге есть содержимое DIV с идентификатором MyDialogMessage внутри диалогового окна DIV с идентификатором MyDialog)

// executes when $.post is complete
function doSuccess(result)
{
    $('div#MyDialog div#MyDialogMessage').html(result);
    //show dialog
    $('div#MyDialog').dialog('open');
}
1 голос
/ 12 октября 2009

Я бы создал действие на контроллере, которое возвращает частичное представление . Затем используйте Colorbox (через его атрибут IFRAME), чтобы загрузить результаты контроллера через jQuery.

...