ASP.NET MVC - PartialView没有刷新

时间:2010-03-19 15:17:34

标签: javascript jquery asp.net-mvc

我有一个使用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;部分视图,但不会显示。

提前致谢, 比利

3 个答案:

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

你有弹出窗口吗?