ASP.NET MVC - PartialView не обновляется - PullRequest
2 голосов
/ 19 марта 2010

У меня есть представление, которое использует обратный вызов JavaScript для перезагрузки частичного представления.По какой-то причине содержимое частичного класса не обновляется, хотя я могу пройти весь процесс и увидеть, как страница вызывается и заполняется.Любая причина, почему страница не будет отображаться?

Код выглядит следующим образом:

<div id="big_image_content">
                    <% Html.RenderPartial("ZoomImage", Model); %>
</div>

Эта ссылка должна перезагрузить div выше:

<a href="javascript:void(0)" onclick="$('#big_image_content').load('/ShopDetai/ZoomImage?image_item=something&image_room_scene=something&category=something');"
title="<%= shape.Shape %>" alt="<%= shape.Shape %>">
  <img src="http://images.rugs-direct.com/<%= shape.Image.ToLower() %>" width="40"   alt="<%= shape.Shape %>">
</a>

частичное представление (ZoomImage.ascx) пока что упрощено, но все еще не загружается:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<RugsDirect.Data.ItemDetailsModel>" %>

<%= Model.Category.ToLower()%>

И, наконец, сторона контроллера:

    public ActionResult ZoomImage(string image_item, string image_room_scene, string category)
    {
        try {
            ItemDetailsModel model = GetMainImageContentModel(image_item, image_room_scene, category);


            return PartialView("ZoomImage", model);
        }
        catch (Exception ex)
        {
            //send the error email
            ExceptionPolicy.HandleException(ex, "Exception Policy");

            //redirect to the error page
            return RedirectToAction("ViewError", "Shop");
        }
    }

Опять же, я могу пройти весь этот процесс иКажется, что все работает принять для страницы не перезагрузки.Я даже могу разбить на <% = Model.Category.ToLower ()%> частичное представление, но оно не будет отображаться.

Заранее спасибо, Билли

Ответы [ 3 ]

1 голос
/ 19 марта 2010

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

Мой вопрос к вам: что именно вы пытаетесь произвести? Какая информация должна измениться, с чего она начинается и что вы ожидаете от нее изменить? Вы перечислили здесь кучу кода и сказали, что он неисправен, но не то, что вы ожидаете, кроме «обновления».

1 голос
/ 19 марта 2010

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

0 голосов
/ 19 марта 2010

Попробуйте изменить

.load('/ShopDetai/ZoomImage);

С синтаксической ошибкой тоже

.load('/ShopDetai/ZoomImage?r='+Math.random());

Math.random() вызывает новую страницу даже при правильном кэшировании.

EDIT:

Если вы измените его на

.load('/ShopDetai/ZoomImage?r='+Math.random(), function(response, status, xhr) {
  if (status == "success" ) alert("got the page");
});

У вас есть всплывающее окно?

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