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标签。

原文地址:https://www.cnblogs.com/easypass/p/8407169.html

时间: 2024-08-29 03:46:43

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

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

1.html.ActionLink返回的指向指定controller.指定action的超链接标签<a>标签.如果没有指定controller,则默认为本页面对应的Controller. 如@Html.ActionLink("链接文本"."someaction"."somecontroller",new { id = " 123 " },null)生成:< a href = " / somecont

HTML.ActionLink 和 Url.Action 的区别

html.ActionLink生成一个<a href=".."></a>标记.而Url.Action只返回一个url. 例如:@Html.ActionLink(“链接文本”.“Aaction”.Acontroller”,new { id = " 123 " },null)生成:< a href = " /Acontroller / Aaction / 123 " >链接文本</a> ========

Html.ActionLink , Url.Action

也来总结一下 以后省的忘了 都是从controller中获取到action名字返回 html.actionlink 返回的是带<a> 标签的超链接 url.action 是返回正常controller 中 action地址  没有<a> 标签 url.content 将相对路径转换为当前运用程序的绝对路径 @section scripts{} 表示将此段内容的js放置在模板页中  就是模板页中rendersection("scrpits") 这一句这个位置

HTML.ActionLink vs Url.Action in ASP.NET Razor

Html.ActionLink generates an <a href=".."></a> tag whereas Url.Action returns only an url. For example: @Html.ActionLink("link text", "someaction", "somecontroller", new { id = "123" }, null) g

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

Html.ActionLink 与 Url.Action  1.两者者是根据给定的Controller,Action 生成链接, 但是Html.ActionLink 返回的是MvcHtmlString的一个带<a>标签的超链接, 而Url.Action返回的是string,一个根本Controller,Action生成的URL地址, 比Html.ActionLink少了<a>标签 Html.RouteLink 与 Url.RouteUrl 两者都是可以指定由哪一个路由来生成Url,

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

在查阅了一些资料后,结论如下: Action 是以mvchtmlstring的方式返回一个结果,RenderAction 无返回值,速度上action慢于RenderAction partial和RenderPatrial同理,但是和action相比,partial需要分页视图与主视图放在一个目录下,可以直接访问分部视图,action 却需要通过control访问视图,比partial多了一次请求 四者相同之处都是在当前页面中嵌入一个分部页面. url.Action返回一个地址,string类型

URI与URL的区别

(原网址:http://zhidao.baidu.com/question/38764759.html) Web上可用的每种资源 - HTML文档.图像.视频片段.程序等 - 由一个通过通用资源标志符(Universal Resource Identifier, 简称"URI")进行定位. 1.URI一般由三部分组成: 2.访问资源的命名机制. 3.存放资源的主机名. 4.资源自身的名称,由路径表示. 考虑下面的URI,它表示了当前的HTML 4.0规范: http://www.web

location和location.href跳转url的区别

使用 location = url  跳转,如果本地之前已经载入过该页面并有缓存,那么会直接读取本地的缓存,缓存机制是由本地浏览器设置决定的.状态码为:  200 OK (from cache) . 使用 location.href = url 跳转,资源的缓存类型是根据服务器缓存配置决定的,都会向服务端发起请求,状态码会有两种情况: 200 OK 和  304 Not Modified  .前者表示该页面是从服务端重新载入的,后者表示从HTTP 头部的 If-Modified-Since 来判

wordpress教程之函数site_url()、home_url()、bloginfo(‘url’)的区别

在wordpress插件和主题开发中经常需要获取各种URL路径,wordpress提供了以下集中方法获得URL路径: plugins_url() - 插件目录的 URL (例如:http://www.hujuntao.com/wp-content/plugins)includes_url() - includes 目录的 URL (例如:http://www.hujuntao.com/wp-includes)content_url() - content 目录的 URL (例如:http://w