URL-адрес действия Ajax для контроллера в частичном представлении - PullRequest
0 голосов
/ 26 января 2012

У меня есть частичное представление, которое имеет двойные списки и четыре кнопки; именно такой http://www.meadmiracle.com/dlb/DLBPlugin.aspx

Теперь я хочу повторно использовать это частичное представление по всему сайту, и каждый раз, когда пользователь нажимает на кнопки, чтобы перемещать объекты в список и из него, я хочу, чтобы это сохранялось в базе данных через Ajax, я делаю Вызов Ajax с использованием JQuery; это создает трудности, поскольку URL-адрес вызова Ajax будет отличаться в зависимости от контроллера, который отвечает на вызов!

$.ajax({
        type: "POST",
        url: '@Url.Action("######HOW TO FIGRE OUT WHICH CONTROLLER #######")',
        success: function (data) {
    //Show some message to the user
        }
    });

Теперь, как мне определить URL? он будет динамическим, он будет основан на контроллере, который отвечает на начальную страницу индекса.

например: если я нахожусь на странице "Города или города", пользователь перемещает города и населенные пункты в поля списка, откуда я знаю, что это действие ajax CityController или действие ajax TownController, как мы узнаем это в частичном представлении куда отправлять сообщения ajax?

1 Ответ

2 голосов
/ 26 января 2012

Пусть ваш PartialView использует модель, у которой есть некоторые свойства, определяющие URL-адрес для вызова, тогда View, вызывающий частичное представление, пропускает эту модель, так что ваш AJAX знает, какой View вызвать

, например

ViewModel

public class DualListBoxViewModel {
   public string Controller { get; set; }
   public string Action { get; set; }      
}

Частичное представление

@model DualListBoxViewModel 
$.ajax({
        type: "POST",
        url: '@Url.Action(model.Controller, model.Action)',
        success: function (data) {
    //Show some message to the user
        }
    });

Представление, вызывающее PartialView

@{ Html.RenderPartial("DualListBoxWithAjax", new DualListBoxViewModel { Controller = "Town", Action = "UpdateListBox" } ); }

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