HTML.ActionLink 方法

2024-01-01

假设我有课

public class ItemController:Controller
{
    public ActionResult Login(int id)
    {
        return View("Hi", id);
    }
}

在不位于 Item 文件夹的页面上,其中ItemController驻留,我想创建一个链接到Login方法。那么哪个Html.ActionLink我应该使用的方法以及应该传递哪些参数?

具体来说,我正在寻找方法的替代

Html.ActionLink(article.Title,
    new { controller = "Articles", action = "Details",
          id = article.ArticleID })

它在最近的 ASP.NET MVC 版本中已被淘汰。


我想你想要的是这样的:

ASP.NET MVC1

Html.ActionLink(article.Title, 
                "Login",  // <-- Controller Name.
                "Item",   // <-- ActionMethod
                new { id = article.ArticleID }, // <-- Route arguments.
                null  // <-- htmlArguments .. which are none. You need this value
                      //     otherwise you call the WRONG method ...
                      //     (refer to comments, below).
                )

这使用了以下方法 ActionLink 签名:

public static string ActionLink(this HtmlHelper htmlHelper, 
                                string linkText,
                                string controllerName,
                                string actionName,
                                object values, 
                                object htmlAttributes)

ASP.NET MVC2

两个论点被调换了

Html.ActionLink(article.Title, 
                "Item",   // <-- ActionMethod
                "Login",  // <-- Controller Name.
                new { id = article.ArticleID }, // <-- Route arguments.
                null  // <-- htmlArguments .. which are none. You need this value
                      //     otherwise you call the WRONG method ...
                      //     (refer to comments, below).
                )

这使用了以下方法 ActionLink 签名:

public static string ActionLink(this HtmlHelper htmlHelper, 
                                string linkText,
                                string actionName,
                                string controllerName,
                                object values, 
                                object htmlAttributes)

ASP.NET MVC3+

参数的顺序与 MVC2 相同,但不再需要 id 值:

Html.ActionLink(article.Title, 
                "Item",   // <-- ActionMethod
                "Login",  // <-- Controller Name.
                new { article.ArticleID }, // <-- Route arguments.
                null  // <-- htmlArguments .. which are none. You need this value
                      //     otherwise you call the WRONG method ...
                      //     (refer to comments, below).
                )

这避免了将任何路由逻辑硬编码到链接中。

 <a href="/Item/Login/5">Title</a> 

这将为您提供以下 html 输出,假设:

  1. article.Title = "Title"
  2. article.ArticleID = 5
  3. 您仍然定义了以下路线

. .

routes.MapRoute(
    "Default",     // Route name
    "{controller}/{action}/{id}",                           // URL with parameters
    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML.ActionLink 方法 的相关文章

  • VBA 中的 VSTO:AddIn.Object 有时不返回任何内容 (null)

    Given VSTO 插件 An override object RequestComAddInAutomationService 它返回一个名为的类的实例Facade在我的场景中 Excel 2007 中的 VBA 宏可访问AddIn O
  • .NET 图形重影

    我正在为我们正在开发的新应用程序制作一个示例 GUI 我已经决定了语言 但我可以使用任何第 3 方 DLL 或插件或任何我需要的东西 以使 GUI 尽可能无缝地工作 他们希望它非常像 mac ubuntu vista Windows 7 所
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • C# - 如何将 IntPtr 缓冲区数据保存到文件(最快的方法)?

    我使用此代码将非托管代码中的 IntPtr 缓冲区中的字节保存到文件中 这是一个简单的回调函数 private void callback IntPtr buffer int length byte bytes new byte lengt
  • 如何强制 Asp.Net Identity 2.0 使用自定义角色而不是 IdentityUserRole

    我已经扩展了 IdentityUserRole 如下 public class ApplicationUserRoles IdentityUserRole
  • 在 C 程序中追踪数组越界访问/写入的推荐方法

    考虑用 C 语言编写一些不太明显的算法的实现 例如 让它成为递归快速排序 我在 K N King 的 C 编程 现代方法 第二版 书中找到了它 可以从here http knking com books c2 programs qsort
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • 使用32位应用程序获取syswow64目录

    我正在尝试在系统目录中查找文件 问题是当使用 Environment SystemDirectory 在 x64 计算机上 我仍然获得 System32 目录 而不是 Systemwow64 目录 我需要在 x86 机器上获取 System
  • 在 C# 中加密并在 Flex 中解密

    我需要解密 Flex 中的一些数据 这些数据是用 C 加密并写入文件的 为了简单起见 我选择使用 as3crypto As3 库和 Bruce Schneier C 库 AS3 as3加密链接 http code google com p
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • 将参数从 Web 表单传递到 Crystal 报表

    我有一份报告 我想将其显示在网络表单上 没有参数的报告运行良好 带参数的报告让我很头疼 这是我在 BindReport 方法中编写的代码 该代码在表单的页面加载事件上调用 ReportDocument rpt new ReportDocum
  • 修改公共属性的访问修饰符是否是重大更改?

    如果我将公共属性的 setter 的访问修饰符从私有更改为公共 是否会导致引用它的其他程序集发生任何重大更改 UPDATE 这个问题是我 2012 年 1 月博客的主题 https ericlippert com 2012 01 09 ev
  • 如何从标准输入读取一行,阻塞直到找到换行符?

    我试图从命令行的标准输入一次读取任意长度的一行 我不确定是否能够包含 GNU readline 并且更喜欢使用库函数 我读过的文档表明getline应该可以工作 但在我的实验中它不会阻塞 我的示例程序 include
  • 在 C# 中将 ulong 映射到 long ?

    我正在尝试将 ulong 映射到 long 反之亦然 将 uint 映射到 int 反之亦然 如下所示 为了将值保存在具有签名类型的 MS SQL 数据库中仅限整数和大整数 我这样做是因为我必须检查 在数据库中 一个数字 uint ulon
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • 使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?)

    我避免在 net arch n 层架构上编写看起来像是另一个线程的内容 但请耐心等待 希望我和其他人一样 在选择用于企业应用程序的架构时 考虑到当今的趋势和新兴技术 仍然没有 100 满意或不清楚应采取的最佳方法 我想我正在寻求大众社区对方
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • 组合框由于某种原因被链接

    我有以下代码来填充 3 个组合框 private void PopulateDDLs SqlConnection connection SqlCommand command SqlDataReader reader DataTable dt
  • 如果未返回,则在一段时间后终止线程

    我有一个线程从网络或串行端口获取一些数据 如果 5 秒内没有收到数据 则线程必须终止 或返回 false 换句话说 如果线程运行时间超过 5 秒 则必须停止 我用 C 编写 但任何 NET 语言都可以 有两种方法 1 封装超时 从网络或串行
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include

随机推荐

  • Rails 4 + 引导程序设置资产

    我正在尝试设置引导程序 on Rails4 using bootstrap sass我收到了这个著名的错误 Sprockets FileNotFound couldn t find file bootstrap in app assets
  • 产品目录API失败

    需要帮忙 我尝试从https developers facebook com docs marketing api dynamic product ads ads management v2 3创建的帐户 批准者为phone 创建了企业帐户
  • SKShader 创建视差背景

    使用固定相机的视差背景很容易做到 但由于我正在制作一个自上而下的视图 2D 空间探索游戏 我认为有一个 SKSpriteNode 填充屏幕并作为我的 SKCameraNode 的子级并使用 SKShader 绘制一个视差星空会更容易 我继续
  • 为什么将带有尾随空格的行提交到源代码管理中是不好的?

    为什么将带有尾随空格的行签入到源代码管理中是不好的 这会导致什么类型的问题 基本上是错误的差异 如果差异仅显示 真实 更改 则会很有帮助 一些 diff 程序会忽略空格 但最好首先避免虚拟更改 当然 如果它在同事的机器上换行也无济于事
  • 第三方广告提供商的广告如何传送到网页?

    当网页加载到浏览器中时 第三方广告提供商如何决定向网页投放什么广告 这些数据以什么格式传送 假设我的网页不包含与广告相关或差异化的内容 但我确实了解我的用户的很多信息 人口统计资料 兴趣 浏览历史记录等 因此 我想要加载的广告必须依赖于用户
  • 如何使 iframe 适合整个屏幕而不指定尺寸?

    如果我不指定任何尺寸 iframe 就会显得很小 如果我确实按如下方式指定尺寸 则它无法针对不同的屏幕分辨率正确缩放 有没有办法自动让 iframe 拉伸到整个屏幕 Use
  • 如何在 SBT 构建中跳过测试?

    我有一个 SBT 0 7 5 项目 它的一些测试用例失败了 在修复所有测试用例之前 我想跳过测试来生成 JAR 是否有任何命令行参数告诉 SBT 跳过所有测试 例如 Maven 的 Dmaven test skip true flag 我遇
  • 在主线程之外创建 QDialog 的方法

    我正在尝试在 QT 中创建一个客户端应用程序 它需要两个线程进行处理和可变数量的窗口实例 但我很难弄清楚如何在处理线程之一内创建一个新窗口 我知道所有 ui 元素必须在与 QApplication 类相同的线程中创建 但我需要能够实例化 或
  • 如何使用 git fetch 覆盖本地标签?

    如何使用 git fetch 覆盖本地标签 我想用远程标签替换本地标签 从 Git 2 20 开始 您需要显式指定强制标志 git fetch origin tags force 在 Git 版本 2 20 之前 与使用 git push
  • 推送“未签出”分支

    我想推送一个分支 不是当前的 而不必先检查它 我怎样才能实现这一点 这就是我要做的 currently in master git checkout feature git push origin feature git checkout
  • seaborn boxplot:更改均值的颜色和形状

    我似乎找不到答案的简单问题 如何更改 Seaborn 箱线图中平均指标的颜色和形状 它默认为绿色三角形 通常很难看到 我试图在 seaborn 文档和 matplotlib 文档中找到答案 stackoverflow 上还有一个相关问题 有
  • Foundation 5、Simple Form 和 Rails - 如何让“提示”CSS 类正常工作

    我已经搜索了几天并进行了实验 但我无法获得要显示的简单表单 gem 提示 CSS 类 这只是一个类 当您将鼠标悬停在表单输入上时显示表单输入的提示 我正在使用 Rails 4 1 以及最新的 simple form gem 和 Founda
  • Java api 到 exiftool

    我对用 java api 或类似的东西解析 exiftool 结果很感兴趣 我一直在研究 但没有找到任何例子 例如 我如何在我的java项目中获得这些结果 Exif工具版本号 8 22 文件名 Exif工具 jpg 目录 t images
  • 使用 GCC 和 Egypt 生成综合调用图

    我正在尝试生成一个全面的调用图 包括对 Linux 运行时等的低级调用 我使用 fdump rtl expand 静态编译了我的源文件并创建了 RTL 文件 我将其传递给名为 Egypt 的 PERL 脚本 我认为是 Graphviz Do
  • 在数据网格中查找文本框

    我有一个包含四列的数据网格 因此 从 C 端的这个数据网格中 我想找到 name headBox 的特定文本框 我该怎么做呢 我的该列的 xaml 如下所示 此部分位于 Datagrid Columns 中 该列位于名称 dgrid 的 d
  • 如何阻止某些记录在 SQL 查询中多次显示

    这里是完整的 SQL Fiddle http rextester com MTIFT55374 如您所见 记录来自recommendations表显示多次 但是如果我删除这一行LEFT JOIN cast ON cast cast tmdb
  • 为参数“appIdName”提供了“无效值”?

    我已经在这个应用程序上工作了几个星期 一切都很棒 我一直在建造 归档并玩得很开心 所有证书 个人资料和 ID 看起来 都井然有序且运行良好 然后几天前 似乎没有任何我能看出的变化 Xcode 说我没有任何 具有有效签名身份的配置文件 当我告
  • 在 ruby​​ 中,如何使用映射方法调用方法链?

    我将如何调用要使用的块 id to s在红宝石中 category ids categories map id to s 我正在破解它并立即执行以下操作 category ids categories each do c category
  • 基于 Maven POM 的自动化构建系统中依赖真实性验证

    我刚刚被指出一个非常有趣的article http www fortify com servlet downloads public fortify attacking the build pdf archived https web ar
  • HTML.ActionLink 方法

    假设我有课 public class ItemController Controller public ActionResult Login int id return View Hi id 在不位于 Item 文件夹的页面上 其中Item