zoukankan      html  css  js  c++  java
  • MVC 部分视图

    ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control。我们的页面往往会有许多重用的地方,可以进行封装重用。

    使用部分视图有以下优点:   1. 可以简写代码。 2. 页面代码更加清晰、更好维护。

    在视图里有多种方法可以 加载部分视图,包括: Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 方法

    partial 与 RenderPartial 方法

    Razor 语法: @Html.Partial() 与 @{Html.RenderPartial();}

    区别:Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来,最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。    指示抓取页面类容,不能抓方法

    在Partial的Action中传递一些数据,并在Partial的部分视图中调用。

    在Index视图中加载Partial视图。下面两种方式都可以加载成功,但第二种效率更高,所以我们使用Html.RenderPartial加载视图

    运行以后页面内容加载过来了,但并没有加载到Action内部的ViewBag变量。

     

    RenderAction 与 Action 

    Razor 语法:

    @{Html.RenderAction();}与@Html.Action();

    区别:Action 也是直接输出,和 Partial 一样,也存在一个转换的过程。不如 RenderAction 直接输出到当前 HttpContext 的效率高。 

    除此之外,Action与Partial相比,Action访问了控制器中的Action,执行了Action内部的业务。

     

    运行之后,ViewBag对象中的值也获取到了

     

    RenderPage 与 RenderPartial

    Razor 语法:

    @{Html.RenderPartial();}  与 @RenderPage()

    区别:也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递。而 RenderPartial 可以使用原来视图的 Model 和 ViewData。

    添加代码并运行,@RenderPage也并没有执行Action。

    ASP.NET MVC4 View 指定视图

    public ActionResult Index(){
       return View();
    }

    这个控制器操作没有指定视图的名称。当不指定视图名称时,操作方法返回的 ViewResult 对象将按照约定来确定视图,它会在目录 /View/ControllerName 下查找与action 名称相同的视图。这种情况下选择的视图是 /Views/Home/Index.cshtml。

    这个约定是可以重写的:

    public ActionResult Index(){
       return View("NotIndex");
    }

    这样指定的视图就是/Views/Home/NotIndex.cshtml。

    也可以直接指定路径指向视图:

    public ActionResult Index(){
       return View("~/Views/Example/Index.cshtml");
    }

    这种情况下,为了查找视图时避开视图引擎的内部查找机制,必须提供视图文件的扩展名。

  • 相关阅读:
    获取数据——爬取某微博评论
    使用Microsoft Power BI进行基本的数据分析
    Hadoop分布式文件系统
    使用Visual Studio开发Python
    ML:吴恩达 机器学习 课程笔记(Week5~6)
    ML:吴恩达 机器学习 课程笔记(Week7~8)
    ML:吴恩达 机器学习 课程笔记(Week9~10)
    知乎用户报告
    ML:多变量代价函数和梯度下降(Linear Regression with Multiple Variables)
    ML:吴恩达 机器学习 课程笔记(Week1~2)
  • 原文地址:https://www.cnblogs.com/Alex80/p/8179916.html
Copyright © 2011-2022 走看看