一、@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标签。

Html.ActionLink与Url.Action区别的更多相关文章

  1. HTML.ActionLink 和 Url.Action 的区别

    html.ActionLink生成一个<a href=".."></a>标记.而Url.Action只返回一个url.例如:@Html.ActionLink ...

  2. Html.Action、html.ActionLink与Url.Action的区别

    1.html.ActionLink返回的指向指定controller.指定action的超链接标签<a>标签.如果没有指定controller,则默认为本页面对应的Controller. ...

  3. Html.ActionLink , Url.Action

    也来总结一下 以后省的忘了 都是从controller中获取到action名字返回 html.actionlink 返回的是带<a> 标签的超链接 url.action 是返回正常cont ...

  4. MVC 中与链接相关的辅助方法(Html.ActionLink,Html.RouteLink , Url.Action , Url.Content ,Url.RouteUrl)

    Html.ActionLink 与 Url.Action  1.两者者是根据给定的Controller,Action 生成链接, 但是Html.ActionLink 返回的是MvcHtmlString ...

  5. HTML.ActionLink 和Html.Action和 Url.Action 的区别

    1. html.ActionLink生成一个<a href=".."></a>标记..例如:@Html.ActionLink(“链接文本”.“someact ...

  6. Html.Action Html.RenderAction Html.Partial Html.RenderPartial Url.Action Html.ActionLink 大括号和小括号区别

    在查阅了一些资料后,结论如下: Action 是以mvchtmlstring的方式返回一个结果,RenderAction 无返回值,速度上action慢于RenderAction partial和Re ...

  7. ASP.NET MVC 视图层-生成链接相关(Html.ActionLink,Url.Action)

    1. @Html.ActionLink()  参考 也是使用在chtml模板中,返回参数中指定controller.指定action的所生成的超链接标签<a>标签html文本.如果没有指定 ...

  8. MVC扩展Url.Action方法解决复杂对象参数问题

    1:问题描述 @Url.Action("Index", "Home", new { Key = "Key", Val = new { Nam ...

  9. js 获取 Url.Action 设置area

    var url = '@Url.Action("UserEdit","User",new { Area = "Setup", id = 1} ...

随机推荐

  1. ChromeDriver截图

    一.NuGet安装Selenium.Chrome.WebDriver和Selenium.WebDriver 二.将packages\Selenium.Chrome.WebDriver.2.45\dri ...

  2. Unity NPOI 无法读取xlsx

    遇到问题 在做编辑器开发时,需要在Unity Editor下直接读取Excel源文件,首先想到的是通过npoi去读取,但是遇到无法读取xlsx格式,只能读取xls格式的问题. 我的环境 unity 2 ...

  3. Webdriver之API详解(2)

    前言:今天继续上一篇文章https://www.cnblogs.com/linuxchao/p/linuxchao-selenium-apione.html分享selenium' webdriver ...

  4. 记录Nginx代理的配置

    server { listen  80; server_name localhost; location / { root    /ect/share/nginx/html; index   inde ...

  5. toast提示信息获取

    toast获取的前提条件 1.desired_caps["automationName"]="UiAutomator2"2.要求安装jdk1.8 64位及以上. ...

  6. .NET 跨平台RPC框架DotNettyRPC

    DotNettyRPC 1.简介 DotNettyRPC是一个基于DotNetty的跨平台RPC框架,支持.NET45以及.NET Standard2.0 2.产生背景 传统.NET开发中遇到远程调用 ...

  7. Map的clear与new Map的区别

    对于clear与new Map的区别.我们首先来看一个例子,本例子是我在实际开发中遇到的,需求就是讲map放入到list中,说白了就是list转map,有两种实现方式,分别是: // 方案一 Map& ...

  8. C# NetStream

    标题:NetStream 关注点:Read.Write 正文: int size = Read(buf, 0, buf.length); 这里一次会读入length个字节,如果小于这个数量,后面的就是 ...

  9. Django(四) ORM 外键操作及初识Ajax

    一.内容回顾 1.Django请求的生命周期: ​ 路由系统 -> 视图函数(获取模板+数据 -> 渲染) -> 字符串返回给用户 2.路由系统: /index/ #-> 函数 ...

  10. Java 删除ArrayList中重复元素,保持顺序

    // 删除ArrayList中重复元素,保持顺序          public static List<Map<String, Object>> removeDuplicat ...