• Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法


    Partial 和RenderPartial:
    这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传值有点不一样
    Partial 回传的一个Object (MvcHtmlString), 回传一个String 把一堆Html给回传出来, 然后写进到主页面上

    @Html.Partial("ViewName")

    RenderPartial 回传的是void, 而这个方法会在主页面上添加指定的View

    @{
                Html.RenderPartial("ViewName");
        } 

    这两个方法没有用到Controller, 是直接把一个View(Page) 给加进来
    而RenderAction 有点不一样, 这是一个Action, 所以会用到Controller 之后再回传一个页面

    public class ChildActionOnlyTestController : Controller

    {

      [ChildActionOnly]

      public ActionResult GetSupplierList()

      {

        var controller = new SupplierController();

        return controller.SupplierList();

      }

    }

    RenderPartial和RenderAction两者的相同点

    通常都被用来显示一个功能相对独立的“块”,比如说显示菜单或者导航条。 两者输出的结果都被作为调用的View的一部分显示。

    两者的不同点

    1. RenderPatial的数据来自于调用的View,而RenderAction来自自己。
    2. RenderAction会发起一个新的Request,而RenderPatial不会。
    @Html.Partial/@{Htmt.RenderPartial()}
    @Html.Partial用于将分部视图渲染为字符串
    @{Html.RenderPartial}将分布视图直接写入响应输出流,所以只能直接放在代码块中,不能放在表达式中(返回值是void)
     
    RenderPartial因为是直接写在响应流中,所以性能会更好(微量影响),而Partial不用写在代码块中,所以更方便
     
    @Html.Action()/@Html.RenderAction()
    和Partial与RenderPartial类似,但是因为会通过Action,所以更灵活,可以利用控制器上下文。
    在Action中可以通过IsChildAction来判断是被Url直接调用还是被Action()/RenderAction()调用
    可以利用重载直接参数给Action。
    RenderAction优先使用ActionNameAttribute。
    Action中使用return PartialView()指定分部视图,在_ViewStatrt.cshtml中指定的Layout会无效。
     
    4种PartialView对比:
    PartialView:
    <div>Just a PartialView Test!@ViewBag.Test</div>
    @ViewBag.Test

     

    View:
    <p>
        @{Html.RenderPartial("ViewUserControl1");}
        @Html.Partial("ViewUserControl1")
        @{Html.RenderAction("ViewUserControl1");}
        @Html.Action("ViewUserControl1")
    </p>

     

    Controller:
    复制代码
    Controller:
    [ChildActionOnly]//防止直接调用
    public ActionResult ViewUserControl1()
    {
        ViewBag.Test = "(Action)调用";
        return PartialView();
    }
    复制代码
            效果:
        

         

    http://www.cnblogs.com/gesenkof99/archive/2013/06/03/3115052.html

  • 相关阅读:
    Solr相似度算法二:BM25Similarity
    Solr相似度算法一:Lucene TF-IDF 相关性算分公式
    Solr相似度算法一:DefaultSimilarity(基于TF-IDF的默认相似度算法)
    Solr特性:Schemaless Mode(自动往Schema中添加field)
    Mahout的taste里的几种相似度计算方法
    Solr之functionQuery(函数查询)
    Solr中的一些查询参数
    solr特点三: 基于Solr实现排序定制化参考
    solr特点三: 排序样例汇总
    Solr 使用自定义 Query Parser(短语查询,精准查询)
  • 原文地址:https://www.cnblogs.com/Jacob-Wu/p/12041684.html
Copyright © 2020-2023  润新知