zoukankan      html  css  js  c++  java
  • 细说@Html.ActionLink()的用法

    一、@Html.ActionLink()概述

      在MVC的Rasor视图引擎中,微软采用一种全新的方式来表示从前的超链接方式,它代替了从前的繁杂的超链接标签,让代码看起来更加简洁。通过浏览器依然会解析成传统的a标签。除此之外,还允许我们添加Html属性。下面来看看@Html.ActionLink()的使用方法吧。

    二、@Html.ActionLink()的使用详解

      1. @Html.ActionLink("linkText", "actionName")

      这种重载的第一个参数是该链接要显示的文字,第二个参数是对应的控制器的方法(Action),默认控制器为当前页面对应的控制器。

      例如,当前页面的控制器为ProductsController:@Html.ActionLink("detial", "Detial")会生成<a href="/Products/Detail">detail</a>

      2. @Html.ActionLink("linkText", "actionName", "controllerName")

      该重载比第一个重载多了一个参数,他指定了控制器的名称。

      例如,@Html.ActionLink("detail", "Detail", "Products")会生成<a href="Products/Detail">detail</a>

      3. @Html.ActionLink("linkText", "actionName", routeValues)

      相对于上一种重载,该重载新增了routeValue参数,routeValue可以向action传递参数。

      例如,@Html.ActionLink("detail", "Detail", new{ id = 1 })会生成<a href="Products/Detail/1">detail</a>

      4. @Html.ActionLink("linkText", "actionName", routeValues, htmlAttributes)

      htmlAttribute可以设置<a>标签的属性。

      例如,@Html.ActionLink("detail", "Detail", new{ id = 1 }, new{ target = "_blank" })会生成<a href="Products/Detail/1" target="_blank">detail</a>,需要注意的是如果写成new{ target="_blank", class="className" }则会报错,因为Class是C#的关键字,此时应该写成@class="className"

      5. @Html.ActionLink("linkText", "actionName", "controllerName", routeValues, htmlAttributes)

      该种重载汇聚了以上此种重载的所有参数,是功能最全的重载。

    三、@Url.Action(),@Html.ActionLink(),Html.RenderAction()和@Html.Action()的区别

    1. 返回值不同

    • @Html.Action()返回值为MvcHtmlString。Html.Action比较灵活,可以直接写在页面上,也可以把它赋值给某一变量,处理之后写在页面上。
    • Html.RenderAction()返回值为void。Html.RenderAction必须写在@{}内,直接由Response对象输出。例:@{ Html.RenderAction("Index", "Import");}
    • @Html.ActionLink()返回值也是MvcHtmlString。
    • @Url.Action()返回值为string。MvcHtmlString本质上也是string,两者都可以直接现在页面上。

    2. 生成的东西不同

    • @Html.ActionLink("myLink", "CCC", "Import")生成<a href="/Import/CCC">myLink</a>
    • @Url.Action("CCC", "Import")直接生成字符串"/Import/CCC",没有任何tag标签。

      

  • 相关阅读:
    FreeCommander 学习手册
    String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
    StringBuffer 详解 (String系列之3)
    StringBuilder 详解 (String系列之2)
    java io系列26之 RandomAccessFile
    java io系列25之 PrintWriter (字符打印输出流)
    java io系列24之 BufferedWriter(字符缓冲输出流)
    java io系列23之 BufferedReader(字符缓冲输入流)
    java io系列22之 FileReader和FileWriter
    java io系列21之 InputStreamReader和OutputStreamWriter
  • 原文地址:https://www.cnblogs.com/sunshineground/p/4360469.html
Copyright © 2011-2022 走看看