2010-03-19 4 views
2

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

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

<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()%>, но он не будет отображаться.

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

+0

Это довольно острый, если вы можете заставить его работать. +1 – Gabe

ответ

1

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

+0

Ой, да, мы бы никогда не видели это с оригинальной почтой. –

+0

нет, если бы я не дал вам значения переменных. Просто не думал об этом. Благодарю. –

0

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

.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"); 
}); 

Вы получаете всплывающее окно?

+0

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

+0

Не повезло. Делает то же самое. Выполняет весь код (даже в строке на частичном представлении), а затем ничего не отображает. –

+0

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

1

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

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

+0

Да, на самом деле есть изображение, которое изменяется на частичном классе. Следовательно, имя ZoomImage. Моя точка с этой иллюстрацией остается тем же. <% = Model.Category.ToLower()%> исчезает после перезагрузки модели через обратный вызов. Несмотря на то, что вы можете явно увидеть, как он заполняется в течение всей отладки вплоть до фактического перехода в файл ZoomImage.ascx. –

Смежные вопросы