Обновите div с помощью действия контроллера, не перезаряжая страницу в ASP MVC - PullRequest
0 голосов
/ 14 марта 2012

У меня есть это действие в моем контроллере

public ActionResult TestItemLogistic()
    {
        ControlViewModel model = new ControlViewModel();
        model.itemSelected = "Logistic";
        return RedirectToAction("MenuList", model);

    }

Это действие вызывается, когда я нажимаю

<a href=@url.Action(subItem.action, subItem.controller)>

Я хочу иметь возможность делать все это без подзарядки страницыи просто обновите какой-нибудь div.

Есть идеи?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 14 марта 2012

Вы можете сделать это, используя Ajax с jQuery. http://api.jquery.com/jQuery.ajax/ выше документы для jquery ajax

0 голосов
/ 14 марта 2012

Вы хотите использовать атрибут Ajax из представления.Вы можете добавить ссылку, которая может обновить любой элемент по id

@Ajax.RouteLink("TestLink", new { controller = "Persoon", action = "Partial" },new AjaxOptions() { InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace UpdateTargetId = "Id Element"})

попробуйте это

0 голосов
/ 14 марта 2012

Вы можете использовать .load для замены содержимого выбранных элементов на вывод HTML, полученный из URL.

Скажем, у вас есть

<a href="@url.Action(subItem.action, subItem.controller)" id="ClickMe">Click Me</a>
<div id="ReplaceMe"></div>

Вы можете сделать что-то вроде этого:

<script type="text/javascript">
 $(function() {
    $('#ClickMe').click(function(e) {
       e.preventDefault();
       $('#ReplaceMe').load($(this).attr('href'));
    });
 });
</script>

Редактировать: теперь я вижу, вы хотите ссылку на действие, которое возвращает URL, а затем вы хотите загрузить содержимое этого результирующего URL.

public ActionResult TestItemLogistic()
{
    ControlViewModel model = new ControlViewModel();
    model.itemSelected = "Logistic";

    UrlHelper u = new UrlHelper(ControllerContext.RequestContext);
    return Content(u.Action("MenuList", model));

}


<script type="text/javascript">
 $(function() {
    $('#ClickMe').click(function(e) {
       e.preventDefault();
       $.get($(this).attr('href'), function(url) {
              $('#ReplaceMe').load(url);
       });
    });
 });
</script>
...