asp.net mvcpartal @ Ajax.ActionLink не работает - PullRequest
8 голосов
/ 08 января 2012

У меня есть страница просмотра

Моя страница просмотра

<div id="beReplaced">
    @Ajax.ActionLink("please click on me to bring the partial view",
                     "PatrialViewToBeCalled",
                     new AjaxOptions()
                        {UpdateTargetId = "beReplaced",
                        InsertionMode = InsertionMode.InsertAfter,
                        HttpMethod="Get",
                        LoadingElementId = "prgress" })
 </div>

У меня есть контроллер

public PartialViewResult PatrialViewToBeCalled()
{
    var customer = db.Customers.First();

    return PartialView("PartialViewThatMustBeShow",customer);
}   

, но когда я нажимаю на сгенерированную ссылку, она приносит мнена новую страницу вместо замены или добавления частичного представления к тегу div.

В чем проблема?

Ответы [ 5 ]

10 голосов
/ 04 июня 2012

Возможно, вам не хватало:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>

На главном экране.Это говорит основному представлению распознать помощника ajax.

1 голос
/ 21 июля 2012

Я нашел решение.Проблема была связана с поврежденным файлом unobtrusive-ajax.min.js.

0 голосов
/ 25 июля 2013

Я просто работал над этим слишком долго, думая, что это не сработало. Просмотр страницы источника тоже ничего не показал.

В конце концов, я обнаружил, что это действительно работает, когда я увидел успешные запросы в консоли Firebug. Это только показывало это за пределы экрана. На вкладке HTML Firebug я наконец нашел вывод, хотя он не отображается в исходном коде страницы.

0 голосов
/ 23 апреля 2013

Если вы работаете с ASP .NET MVC 4, убедитесь, что

  @Scripts.Render("~/bundles/jquery")

также находится в конце тега body.

      @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html> 
0 голосов
/ 08 января 2012

Если на вашу страницу загружен jQuery, почему бы не использовать простой метод get / load jquery для получения частичного представления?

<div id="beReplaced">
  <a href="#" id="lnk1">please click on me to bring the partial view</a>
</div>

Javascript

$("#lnk1").click(function(){
$.get('/controller/PatrialViewToBeCalled', function(data) {
         $('#beReplaced').html(data);
      });
});
...