MVC中局部视图的使用

加载部分视图

$("#result").load("/home/message",function(){

//加载完之后隐藏进度条

});

 

 public ActionResult message(){

   return PartialView("视图",实体);

}

 

分页控件的使用

页面:

 < div   id = " CommentList " >
@ { Html . RenderAction ( " Index " ,   " Comment " ,   new   {   id   =   @ Model . ProductID ,   page   =   1   } ) ; }
< / div > 

 局部视图

 @ using   Webdiyer . WebControls . Mvc ;
     @ model   PagedList < Extshop . Models . T_Comment >
     @ {
             foreach   ( var   c   in   Model )
             {
                    < div   class = " row "   >
                    < div   class = " title " > @ c . Title < / div >
                     < b > @ c . Username < / b > & nbsp ; 发表于 @ ( c . CreateTime ) < br / >
                       @ c . Description                              
                     < / div >
             }
     }
     < br   / >
     < div   class = ' pagenav ' > @ Ajax . Pager ( Model ,   new   PagerOptions { PageIndexParameterName = " page " } ,   new   AjaxOptions   {   UpdateTargetId   =   " CommentList "   } ) < / div > 
Ajax分页的方法,这样,就可以使用Ajax自动更新该部分。在AjaxOption中定义了UpdateTargetId参数为“CommentList”,意味着当Ajax加载数据后,会自动更新id为“CommentList”的html元素内的内容
 @Html.Pager(Model, new PagerOptions
{
    PageIndexParameterName = "id",
    ShowPageIndexBox = true,
    FirstPageText = "首页",
    PrevPageText = "上一页",
    NextPageText = "下一页",
    LastPageText = "末页",
    PageIndexBoxType = PageIndexBoxType.TextBox,
    PageIndexBoxWrapperFormatString = "请输入页数{0}",
    GoButtonText = "转到"
})

后台:

 新建一个名称为“CommentController”的控制器,并修改index操作代码如下:

                     public   ActionResult   Index ( int   id , int ?   page )
                     {
                             ViewData [ " ProdcutID " ]   =   id ;
                             PagedList < T_Comment >   q   =   dc . T_Comment . Where ( m   = >   m . ProductID   = =   id ) . OrderByDescending ( m = > m . CreateTime ) . ToPagedList ( page   ? ?   1 , 2 ) ;
                             return   PartialView ( q ) ;
                     }

      代码中第1个参数id表示的是产品的id,第2个参数是评论的当前页。和产品列表一样,使用mvcPager进行分页。

Html.RenderPartial与Html.RenderAction的区别

 在Razor视图中语法不一样:
@Html.Partial("PartialViewName")
@{ Html.RenderPartial("PartialViewName",Model); }

Html.RenderAction允许你直接调用某一个Action,并把返回的结果直接显示在当前调用的View中,在Control中有一个方法并返回PartialView

Html.RenderPartial不经过Control直接通过引用页传入的Model描绘数据

MvcPager.rar

 PagerTest.zip

posted @ 2014-11-27 17:31  欢醉  阅读(23401)  评论(1编辑  收藏  举报