MVC中,查询以异步呈现,分页不用异步的解决方案

这种需求,用一个ASPX页面和一个ASCX分部视图就可以解决了,ASPX提供对ASCX的引用,ASCX显示列表信息,ASPX主页面提供查询功能

  <% using (Html.BeginForm())
       {%>
    <%Html.RenderAction("AllPropertyForSelectList", "Common"); %><input type="button"
        value="查询" class="button" id="search" />
    <div id="list">
        <%Html.RenderPartial("Common_BasePropValueList",Model); %>
    </div>
    <%} %>

查询功能的JS

<script type="text/javascript">
        $(function () {
            $("#search").click(function () {
                $.ajax({
                    type: "POST",
                    url: "/Common_BaseProp/Index",
                    data: { page: "<%=Model.PageIndex %>", pid: $("#PID").val() },
                    success: function (data) {
                        $("#list").html(data);
                    }
                })
            });
        });
    </script>

controller代码:

  public ActionResult Index(int? page, int? pid)
        {
            vp = new Entity.VPredication();
            pp = new Entity.PagingParam(page ?? 1, PAGESIZE);
            if (pid != null)
                vp.AddItem("pid", pid);
            Entity.PagedList<Common_BasePropValue_Ext> model = iCommon_BasePropValueService.GetAllBasePropValue(vp, pp);
            if (Request.IsAjaxRequest()) //通过判断请求,来确定是返回页面,还是返回分部视图
                return PartialView("Common_BasePropValueList",model);
            else
                return View(model);
        }

posted @ 2011-11-29 13:03  张占岭  阅读(1085)  评论(0编辑  收藏  举报