Ajax.BeginForm обновить частичное ..? - PullRequest
1 голос
/ 04 февраля 2009

Хорошо, у меня есть форма, которая отправляет сообщения с использованием ajax ...

<% using(Ajax.BeginForm(new AjaxOptions() { OnBegin="onBegin", OnSuccess = "onSuccess", OnFailure="onFailure"  })) { %>

На стороне сервера я передаю от контроллера объект Json. Теперь, когда происходит событие OnSuccess, я могу добраться до объекта Json с помощью «result.get_response (). Get_object ()» ...

У меня вопрос, мне нужно иметь возможность обновить партиал на странице списком элементов, которые есть в объекте Json ...

Мысли о том, как я могу это сделать ..?

Ответы [ 4 ]

1 голос
/ 26 февраля 2009

Используйте jQuery и прокрутите возвращенный объект JSON, создавая все, что вам нравится.

Пример:

  $.each(json, function(i, item) {
        //Add a dinner to the list on the right
        $('#dinnerList').append($('<li/>')
                              .attr("class", "dinnerItem")
                              .append($('<a/>').attr("href", "/Dinners/Details/" + item.ID)
                              .html(item.Name)).append("SomeThing"));
    });
1 голос
/ 15 июня 2009

я думаю, что следующий код вы можете понять.

сначала создайте форму ajax с - RefreshAjaxList: имя действия ajax текущего контроллера. - string.empty (необязательно) вариант ajax. - идентификатор формы (необязательно) - при нажатии на статус, мы будем редактировать статус сервера вызовов, чтобы обновить статус. - после редактирования статуса мы вызываем кнопку отправки для вызова RefreshAjaxList. кнопка "дисплей: нет" - в этом примере у меня есть один контроллер: AjaxController с 2 действиями:

enter code here
    public ActionResult UpdateStatus(int contactId, Status contactStatus)
    {
        ContactRepository repo = new ContactRepository();
        repo.UpdateStatus(contactId, contactStatus);
        return Json("success:true");
    }
    [AcceptVerbs(HttpVerbs.Post)]
    [ActionName("RefreshAjaxList")]
    public ActionResult RefreshContact()
    {
        ContactRepository repo = new ContactRepository();
        IList<Contact> list = repo.List();
        return PartialView("AjaxUc/AjaxList", repo.List());
    }

var status = {активно: 1, неактивно: 0}; function editStatus (ячейка, идентификатор, активный) { если (активный) cell.innerHTML = "Active" + "Неактивный"; еще cell.innerHTML = "Active" + "Неактивный"; }

function updateStatus(radio, id, active) {
    if (radio.checked != active) {
        if (confirm("Do you want to change the status of the contract?")) {
            if (active)
                cStatus = status.active;
            else
                cStatus = status.inactive;
            $.ajax({
                url: 'Ajax/UpdateStatus',
                dataType: "json",
                data: { contactId: id, contactStatus: cStatus },
                success: function(html) {
                    jQuery("#divAjaxList").submit();
                },
                error: function(request, desc, ex) {
                    alert(desc);
                }
            });
        }
    }
}

Я бы Имя Фамилия Телефон Эл. адрес Статус | ,); ">

за дополнительной информацией обращайтесь по адресу pnguyen2@firstlook.com для дальнейшего обсуждения.

надеюсь, это поможет вам.

0 голосов
/ 13 января 2010

Вы также можете использовать JTemplate для визуализации данных JSON

0 голосов
/ 04 февраля 2009

создайте пользовательский элемент управления для списка элементов, которые будут отображаться, и отредактируйте его как частичный, передав данные JSON в UC. Это обновит частично

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...