Как я могу заполнить частичное представление, используя jQuery? - PullRequest
0 голосов
/ 14 апреля 2011

Как я могу заполнить частичное представление, используя jQuery?Результат: при нажатии на ссылку ничего не происходит.

<script type="text/javascript">
$(document).ready(function () {
        $('.block').click(function () {
            var id = this.id;
            $.ajax({
                url: "/Link/Link",
                data: { Letter: id },
                success: function (mydata) {
                    var dom = $(mydata);
                    $("#link").empty().append(dom);
                },
                type: "POST"
            });
            return false;
        });
    });
</script>  

<a href="<%=Url.Action("Link",new {Letter="A"}) %>" id="A" class="block">A</a>
<a href="<%=Url.Action("Link",new {Letter="B"}) %>" id="B" class="block">B</a>

<div id="link">
  <% Html.RenderPartial("LinkUC", ViewData["Letter"]); %>
</div>

Контроллер

public ActionResult Link(string Letter)
{
    ViewData["Letter"] = LinkManagementRepository.GetAllOrganizationLinks(Letter);

    return PartialView("LinkUC",ViewData["Letter"] );  
}

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Что на земле это:

return PartialView("LinkUC",ViewData["Letter"] );

Почему бы вместо этого не использовать строго типизированные представления:

public ActionResult Link(string letter)
{
    var model = LinkManagementRepository.GetAllOrganizationLinks(letter);
    return PartialView("LinkUC", model);
}

Избавиться от этой ViewData чумы.

0 голосов
/ 14 апреля 2011

Вы должны попробовать использовать .load.

. Направьте его на действие, которое возвращает PartialViewResult, поэтому HTML-код в ответе будет загружен в упакованный набор, который вы вызываете.

например $('div#link).load('yourPartialViewResultAction', {Letter: id }, null);

0 голосов
/ 14 апреля 2011

что означает LinkManagementRepository.GetAllOrganizationLinks (Letter)?Я не думаю, что вам нужно устанавливать ViewData, но возвращайте вызов repostiroy напрямую.

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