. @Html.ActionLink("该链接要显示的文字A","对应的控制器方法B");会生成:<a href="C/B">A</a> 默认控制器为当前页面的控制器

  .@Html.ActionLink("该链接要显示的文字A","对应的控制器方法B","指定了控制器名称C");会生成:<a href='C/B'>A</a>

  .@Html.ActionLink("该链接要显示的文字A","对应的控制器方法B",new{id=});会生成:<a href ='C/B/1'>A</a>

  .@Html.ActionLink("该链接要显示的文字A","对应的控制器方法B",new{id=},new {target='_blank'}); 会生成:<a href="C/B/1" target="_blank">A</a> 假如写成:new{target='_blank',class="className"}要报错 因为class是关键字,应该写成:@class="className"。

  .@Html.ActionLink("该链接要显示的文字A","对应的控制器方法B","对应的控制器C","routeValues 传的 new{id=1}","htmlAttrib @class='className'");包含了所有的类型参数

@html.ActionLink的几种参数格式:

Razor模板引擎 @RenderBody ,@RenderPage

  1.@RenderBody()

    当创建基于Layout.cshtml布局页面的视图时候,视图的内容跟布局页面合并。而创建的新视图内容会通过Layout.cshtml布局页面的@RenderBody()方法呈现在标签之间

  2.@RenderPage()

    这个方法是要呈现一个页面,比如网页中固定头部的可以单独放在一个共享的视图文件里,然后在布局页面通过这个方法调用:

    @RenderPage("~/Views/Shared/Err.cshtml");

    带参数:@RenderPage(~/Views/Shared/Err.cshtml",new{id=0,name="ing"});

    获取RenderPage()传递过来的参数:@PageData["param"]

  3.RenderSection()

    布局页面还有节Section的概念,如果某个视图模板中定义了一个节,那么久可以把它单独呈现出来,为了防止缺失节而出现异常,可以给RenderSection()提供俩个参数。

    @RenderSection("head",false);

      或

    @if(IsSectionDefined("head"))

      {

        @RenderSection("head",false);

      }else{

      <p>No</p>

      }

 <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />  

<script src="@Url.Content("~/Scripts/jquery-1.4..min.js")" type="text/javascript"></script>

@RenderSection("head", required: true)@*View页面自定义特定js/css使用*@  

<body>  

    @RenderPage("~/Views/Shared/_Header.cshtml")
@RenderBody()
</body>

例子

    4.@Html.Partial

      每次创建自己的TextWriter实例并且把内容缓存在内存里面,最后把所有Writer输出的内容发送到一个MvcString中

      经常用@{Html.RenderPartial("A");}而不是@Html.Partial

   Html.RenderPartial()跟@Html.Partial的区别:

      Html.RenderPartial直接输出到当前HttpContext(因为是直接输出所以性能好)

      Html.Partial将视图内容直接生成一个字符串并返还(相当于有个转义的过程)

   RenderPage()和RenderPartial()的区别:

      RenderPage()调用的页面只能使用其传递过去的数据

      RenderPartial()是可以使用ViewData,Model等数据的

    如:@{Html.RenderPartial("A",model);}用这个重载可以在部分视图使用强类型,然后在主视图使用第二个参数传model过去 @{Html.RenderPartial("A"ViewData["B"]);}

  Html.RenderPartial和Html.RenderAction的区别:

    Html.RenderPartial适合用在重复的UserControl,并且只需要透过Model来呈现内容,或者对于广告的UserControl也合适用。

    Html.RenderAction则会先去呼叫Controller的Action方法,如果UserControl是需要透过资料库(Action)取得信息来呈现,此时就比较合适使用此方法

  注:

    1.带有Render的方法返回值都是void,在方法内部进行输出,不带返回值类型为MvcHtmlString 例:

      @Html.Partial对应@{Html.RenderPartial(xxx);}

      @Html.Action对应@{Html.RenderAction(xxx);}

    2.Html.Partial可以直接提供用户控件名作为参数,而Html.Action需要对应的Action,在Action内部返回PartailResult(即return PartialView()).

    3.对于简单没有任何逻辑的用户控件 推荐用Html.Partial;对于需要设置一些Model的用户控件,用Html.Action。当然 ,有Model数据也是可以用Html.Partial方法的,可以看方法的重载

    4.使用Html.Action有个好处:可以根据不通过的场景选择不通的用户控件:

      @Html.Action("AControl")

      在对应的A这个Action中,在用户没有登录的时候,可以用return PartialView("BControl");登录后,可以 return PartialView("AControl");

        

Mvc4_ActionLink跟@RenderBody ,@RenderPage的更多相关文章

  1. RenderBody, RenderPage and RenderSection methods in MVC 3

    原文地址:http://www.codeproject.com/Articles/383145/RenderBody-RenderPage-and-RenderSection-methods-in R ...

  2. ASP.NET MVC3 局部页面@RENDERBODY @RENDERPAGE@RENDERSECTION使用方法详细说明

    转载自:http://blog.163.com/wenchangqing_live/blog/static/173722309201211299817278/ asp.net mvc3局部页面使用方法 ...

  3. MVC View显示详解(RenderBody,RenderPage,RenderSection,Partial)

    一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合 ...

  4. RenderBody,RenderPage和RenderSection

    1. RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到<body>标签里 ...

  5. 【ASP.NET】@RenderBody,@RenderPage,@RenderSection的使用

    @RenderBody @RenderBody是布局页(_Layout.cshtml)通过占位符@RenderBody占用独立部分,当创建基于此布局页的试图时,视图的内容会和布局页合并,而新创建的视图 ...

  6. ASP.NET MVC之Layout布局与@RenderBody、@RenderPage、@RenderSection

    @RenderBody @RenderBody是布局页(_Layout.cshtml)通过占位符@RenderBody占用独立部分,当创建基于此布局页的试图时,视图的内容会和布局页合并,而新创建的视图 ...

  7. MVC - 知识点

    1.     @Styles.Render("~/Content/css")  是怎么工作的? 在App_Start文件夹里面的BundleConfig.cs中定义了StyleBu ...

  8. Asp.net mvc 知多少(四)

    本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...

  9. ASP.NET MVC学习(四)之视图View

    1.视图 2.强类型视图 3.@RenderSection("HeaderSection", false)     @RenderBody() 4.子行为 5.ASP.NET MV ...

随机推荐

  1. 用C#钩子写一个改键外挂

    我的微信群——软件开发测试工程师交流群,欢迎扫码: 改键是一种习惯,比如在玩儿lol或者dota的时候.理论上玩儿什么游戏都可以改键. 做一个窗体(点击Install——应用改键,点击Uninstal ...

  2. css3 转换transfrom 过渡transition 和两个@

    做了一个demo.用到一些css3的动画,还是不太熟练,总结了一下.  1. -webkit-font-smoothing: antialiased;       -webkit-font-smoot ...

  3. CSS——清除浮动

    <div id="main" class="clear"> <div id="left"> </div> ...

  4. java实现UDP协议传输DatagramSocket

    摘自:http://blog.csdn.net/wintys/article/details/3525643/ Server端. package com.topca.server; import ja ...

  5. bouncycastle创建csr

    public static void main(String[] args) { String subjectDN = "CN=duwenlei"; String algorith ...

  6. okhttp3教程(1)如何引入库

    官网: https://github.com/square/okhttp https://github.com/square/okio 1,使用okhttp3需要两个库 在build.gradle c ...

  7. ContentProvider官方教程(7)3种访问形式:批处理、异步访问、intent间接访问(临时URI权限)

    Alternative Forms of Provider Access Three alternative forms of provider access are important in app ...

  8. VirtualBox中安装CentOS-6.6虚拟机(转载)

    1. 下载 可以到官网下载,http://mirror.centos.org/centos/ 如果下载速度太慢的话,也可以到163镜像下载: http://mirrors.163.com/centos ...

  9. 3.求m+mm+mmm+…+m…m(n个)的和,其中m为1~9之间的整数。 例如,当m=3、n=4时,求3+33+333+3333的和。

    package a; public class QiuHe { private int m; private int n; public int getM() { return m; } public ...

  10. Create Custom Modal Dialog Windows For User Input In Oracle Forms

    An example is given below to how to create a modal dialog window in Oracle Forms for asking user inp ...