我有一个使用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");
}
}
同样,我可以逐步完成整个过程,并且所有人似乎都在接受不重新加载的页面。我甚至可以打破&lt;%= Model.Category.ToLower()%&gt;部分视图,但不会显示。
提前致谢, 比利
答案 0 :(得分:1)
我只是在本地设置你的确切情况,一切都运行正常。当然,我的模型包含一个随机数生成器,而不是你正在做的任何事情。我也让它在没有随机url扩展的情况下工作以击败缓存。
我的问题是,你想要产生的效果究竟是什么?应该更改哪些信息,从哪些信息开始,以及您希望将其更改为什么?你在这里列出了一堆代码,并说它已经坏了,但除了“更新”之外,没有你想要发生的事情。
答案 1 :(得分:1)
在挖掘和挖掘之后,我逐渐重新应用了我的所有脚本,一切都按照应有的方式运行。问题出现了,我的一个参数值有一个空格。移除空间后一切正常。
答案 2 :(得分:0)
尝试更改
.load('/ShopDetai/ZoomImage);
也有语法错误
.load('/ShopDetai/ZoomImage?r='+Math.random());
即使有适当的缓存,Math.random()
也会强制换页。
编辑:
如果您将其更改为
.load('/ShopDetai/ZoomImage?r='+Math.random(), function(response, status, xhr) {
if (status == "success" ) alert("got the page");
});
你有弹出窗口吗?