Html.ActionLink与Url.Action区别
一、@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区别的更多相关文章
- HTML.ActionLink 和 Url.Action 的区别
html.ActionLink生成一个<a href=".."></a>标记.而Url.Action只返回一个url.例如:@Html.ActionLink ...
- Html.Action、html.ActionLink与Url.Action的区别
1.html.ActionLink返回的指向指定controller.指定action的超链接标签<a>标签.如果没有指定controller,则默认为本页面对应的Controller. ...
- Html.ActionLink , Url.Action
也来总结一下 以后省的忘了 都是从controller中获取到action名字返回 html.actionlink 返回的是带<a> 标签的超链接 url.action 是返回正常cont ...
- MVC 中与链接相关的辅助方法(Html.ActionLink,Html.RouteLink , Url.Action , Url.Content ,Url.RouteUrl)
Html.ActionLink 与 Url.Action 1.两者者是根据给定的Controller,Action 生成链接, 但是Html.ActionLink 返回的是MvcHtmlString ...
- HTML.ActionLink 和Html.Action和 Url.Action 的区别
1. html.ActionLink生成一个<a href=".."></a>标记..例如:@Html.ActionLink(“链接文本”.“someact ...
- Html.Action Html.RenderAction Html.Partial Html.RenderPartial Url.Action Html.ActionLink 大括号和小括号区别
在查阅了一些资料后,结论如下: Action 是以mvchtmlstring的方式返回一个结果,RenderAction 无返回值,速度上action慢于RenderAction partial和Re ...
- ASP.NET MVC 视图层-生成链接相关(Html.ActionLink,Url.Action)
1. @Html.ActionLink() 参考 也是使用在chtml模板中,返回参数中指定controller.指定action的所生成的超链接标签<a>标签html文本.如果没有指定 ...
- MVC扩展Url.Action方法解决复杂对象参数问题
1:问题描述 @Url.Action("Index", "Home", new { Key = "Key", Val = new { Nam ...
- js 获取 Url.Action 设置area
var url = '@Url.Action("UserEdit","User",new { Area = "Setup", id = 1} ...
随机推荐
- Redis 主从复制原理及雪崩 穿透问题
定义: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMw ...
- CQOI2019(十二省联考)游记
CQOI2019(十二省联考)游记 Day -? 自从联赛爆炸,\(THUWC\)爆炸,\(WC\)爆炸(就没有不爆炸的)之后我已经无所畏惧... 听说是考\(4.5 h\)吗? Day -1 \(Z ...
- day 25 面向对象之接口、抽象类、多态、异常处理、反射、断言
复习 '''继承1.父类:在类后()中写父类们class A:passclass B:passclass C(A, B):pass2.属性查找顺序:自己 -> ()左侧的父类 -> 依 ...
- Kubernetes 网络排错指南
本文介绍各种常见的网络问题以及排错方法,包括 Pod 访问异常.Service 访问异常以及网络安全策略异常等. 说到 Kubernetes 的网络,其实无非就是以下三种情况之一 Pod 访问容器外部 ...
- ValueError: too many values to unpack
Error msg: 执行: python manage,py makemigrations 报错:Value: too many values to unpack 问题: django第一次数据库迁 ...
- docker安装与测试 及 安装docker compose
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口 ...
- Asp.Net Core中DI的知识总结
在asp.net core中DI的概念是由这几部分组成的: IServiceCollection,保存IServiceDescriptor实例的列表 IServiceProvider,只有一个方法Ge ...
- 基于Python玩转人工智能最火框架 TensorFlow应用实践
慕K网-299元-基于Python玩转人工智能最火框架 TensorFlow应用实践 需要联系我,QQ:1844912514
- Django(七)缓存、信号、Form
大纲 一.缓存 1.1.五种缓存配置 1.2配置 2.1.三种应用(全局.视图函数.模板) 2.2 应用多个缓存时生效的优先级 二.信号 1.Django内置信号 2.自定义信号 三.Form 1.初 ...
- 财务CLOUD成本核算
1.关账 仓库账关账 2.应收应付是否已审核 生成财务应收应付 3.存货账关账 4.1采购存货核算 4.2零成本维护 4.3成本中心设置 4.4成本项目设置 4.5费用项目设置 4.6成本项目匹配方 ...