首页 新闻 会员 周边

关于MVC重复加载了头导航--见第2个图的红圈圈

0
悬赏园豆:10 [已解决问题] 解决于 2012-04-26 09:11

点了Query后

--

 

StephenJu的主页 StephenJu | 初学一级 | 园豆:145
提问于:2012-04-25 22:21
< >
分享
最佳答案
0

你QueryOrders Action里返回的带有头导航的HTML,所以建议另外写一个Action,Ajax.BeginForm提交到新写的Action中,这个Action只返回不带头导航的内容

收获园豆:8
artwl | 专家六级 |园豆:16736 | 2012-04-26 07:50

@artwl,谢谢,按你方法已经解决。

StephenJu | 园豆:145 (初学一级) | 2012-04-26 09:10

@StephenJu: 细看了下,还是我Action也写错了,如上建议可以实现。其实造成重复加载时Request.IsAjaxRequest()判断范围写错了。

如下:

public ActionResult QueryOrders(int? orderId, int id = 1)
        {
            using (var db = new NorthwindDataContext())
            {
                PagedList<Orders> orders = null;
                if (Request.IsAjaxRequest())
                {
                    if (orderId.HasValue)
                    {
                        orders = db.Orders.Where(o => o.OrderID == orderId).OrderBy(order => order.EmployeeID).ToPagedList(id, 10);
                    }
                    else
                    {
                        orders = db.Orders.OrderBy(order => order.EmployeeID).ToPagedList(id, 10);
                    }
                    return PartialView("OrdersList", orders);
                }
                orders = db.Orders.OrderBy(order => order.EmployeeID).ToPagedList(id, 10);
                return View(orders);                
            }
        }
StephenJu | 园豆:145 (初学一级) | 2012-04-26 09:19
其他回答(1)
0

在ajax请求的action里加一个“ViewData.Add("ajax", "true");“,然后,在这个view中,@model句后添加

@{
        if(ViewData.ContainsKey("ajax")) 
        {
             Layout = null;
        }
}
收获园豆:2
sinhbv | 园豆:2579 (老鸟四级) | 2012-04-26 07:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册