Ошибка при рендеринге частичного просмотра - PullRequest
0 голосов
/ 13 февраля 2012

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

мои действия:

 public PartialViewResult Menu(int? caseId)
    {
        if (caseId != null)
        {
            ViewBag.MenuId = caseId;
        }
        return PartialView("_MenuPartial", null);
    }

Мой вид отображается с помощью jquery ajax

  function loadMenu(id) {
                $.ajax({
                    data: "/Home/Menu?caseId=" + id,
                    success: function (data) {
                        alert(data);
                        $("#menucontainer").html(data);
                    }
                });
            }

и, наконец, мое мнение называется "_MenuPartial":

<ul id="menu">
    <li>@Html.ActionLink("Home", "Index", "Home")</li>
    <li>@Html.ActionLink("About", "About", "Home")</li>
    @if (@ViewBag.MenuId == 1 || @ViewBag.MenuId == 2)
    {
        <li>link @ViewBag.MenuId</li>
    }
</ul>

Есть идеи, почему возвращается полная страница вместо частичного просмотра?

1 Ответ

0 голосов
/ 13 февраля 2012

Ваш вызов .ajax () выглядит немного не так.Вы должны использовать свойство "url" для вызова действия вашего контроллера.Это будет выглядеть примерно так:

function loadMenu(id) {
    $.ajax({
        url: "/Home/Menu?caseId=" + id,
        success: function (data) {
            $("#menucontainer").html(data);
        }
    });
}

Предполагая, что все ваши файлы находятся в правильных папках, вы должны получить ожидаемые результаты.Если вам нужно передать в действие более сложный тип данных, вы можете сериализовать объект JSON и отправить его в параметре данных.

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