一、@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()的用法相关推荐

  1. gets fgets 区别

    http://www.cnblogs.com/aexin/p/3908003.html 1. gets与fgets gets函数原型:char*gets(char*buffer);//读取字符到数组: ...

  2. Vue学习笔记(九) Vue CLI

    1.简介 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,它包括三个独立的部分: CLI:一个全局安装的 npm 包,提供在终端里使用的命令 CLI 服务:一个局部安装在使用了 @v ...

  3. 多文件上传组件FineUploader使用心得

    原文 多文件上传组件FineUploader使用心得 做Web开发的童鞋都知道,需要经常从客户端上传文件到服务端,当然,你可以使用<input type="file"/> ...

  4. js 跳转到指定位置 高德地图_JS控制div跳转到指定的位置的几种解决方案总结

    总结一下自己在写这个需求遇到的问题,相信大家应该是经常遇到的.即要求滚轮滚动到指定的位置.先看下基本的解决方案. 1.给链接a加个#的方式来实现跳转.(锚点方法)这里直接贴下代码: div1 div2 ...

  5. python之网络部分

    1.C/S B/S架构 C: client端 B: browse 浏览器 S: server端 C/S架构: 基于客户端与服务端之间的通信 ​ QQ, 游戏,皮皮虾, 快手,抖音. ​ 优点: 个性化 ...

  6. 基于TCP和UDP的socket

    为什么学习socket 你自己现在完全可以写一些小程序了,但是前面的学习和练习,我们写的代码都是在自己的电脑上运行的,虽然我们学过了模块引入,文件引入import等等,我可以在程序中获取到另一个文件的 ...

  7. 3.网络编程 网络编程

    一 操作系统基础(需要改网址) 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何 ...

  8. Html.ActionLink在Area中的用法

    在 Area 内进行跳转: @Html.ActionLink("About", "About") 从 Area 一个区域跳转到另一个区域 @Html.Actio ...

  9. vuex模块化 怎么引用state_[Vuex系列] - 细说state的几种用法

    state 存放的是一个对象,存放了全部的应用层级的状态,主要是存放我们日常使用的组件之间传递的变量. 我们今天重点讲解下state的几种用法,至于如何从头开始创建Vuex项目,请看我写的第一个文章. ...

  10. 细说 ASP.NET Cache 及其高级用法

    阅读目录 开始 Cache的基本用途 Cache的定义 Cache常见用法 Cache类的特点 缓存项的过期时间 缓存项的依赖关系 - 依赖其它缓存项 缓存项的依赖关系 - 文件依赖 缓存项的移除优先 ...

最新文章

  1. 数据库like匹配的实现猜测
  2. python set使用
  3. abap 向上取整CEIL和向下取整FLOOR
  4. 易语言 字段重复_使对易失性字段的操作原子化
  5. 三星Galaxy Tab S8系列国行版曝光:对标iPad Pro的旗舰平板
  6. mondrian olap 示例_详解OLAP概念、基本内容、特点、分类
  7. 操作系统期末总复习(题库)
  8. graSSHopper:一个不错的开源SSH工具
  9. Word的样式库在 选项卡中_2分钟学会在Word中制作田字格 米字格 书法练字再也不用买本子了...
  10. mall-accounts.json ES测试数据
  11. 中南民族大学计算机组成原理实验,中南民族大学计算机组成原理试题及答案剖析...
  12. linux定时任务生效_linux ( crontab 定时任务命令)
  13. Kubernetes 调度 Node污点/容忍
  14. java计算机毕业设计二手车商城源码+mysql数据库+系统+lw文档+部署
  15. python输入素数为什么要先判断是否是素数再用欧拉筛法
  16. 接口开放平台,我的一些思考
  17. 普通函数的this指向以及更改this指向
  18. 文件缓存FileCache
  19. Android定位失败解决方法
  20. Unity API常用方法和类学习笔记1

热门文章

  1. 建筑业建筑业大数据行业现状_建筑—第2部分
  2. 服务器与服务器之前文件传输,客户端与服务器的文件传输
  3. 蓝桥杯_算法训练_审美课
  4. 原图像中的68个关键点是怎么获取_武汉课工场云计算培训:一级运动模型在动图中的应用...
  5. sql server 存储过程_pgRouting教程七:使用SQL存储过程
  6. python: 正则表达式2--元字符与re模块
  7. C++赋值运算符重载函数(operator=)
  8. NGUI组件参数总结
  9. js弹出框、遮罩层、可拖动学习
  10. Nagios中NSClient++监控Windows主机