如何在 ASP.NET MVC 中创建友好的 URL?

2024-01-01

如何在 ASP.NET MVC 框架中生成友好的 URL?例如,我们有一个如下所示的 URL:


http://site/catalogue/BrowseByStyleLevel/1  

1 是要浏览的学习级别(在本例中为较高级别)的 Id,但我想以与 StackOverflow 相同的方式重新格式化 URL。

例如,这两个 URL 将带您到同一个地方:

https://stackoverflow.com/questions/119323/nested-for-loops-in- different-languages https://stackoverflow.com/questions/119323/nested-for-loops-in-different-languages

https://stackoverflow.com/questions/119323/ https://stackoverflow.com/questions/119323/

EDIT:url 的友好部分称为slug.


解决这个问题有两个步骤。首先,创建一个新路由或更改默认路由以接受附加参数:

routes.MapRoute(  "Default", // Route name
                   "{controller}/{action}/{id}/{ignoreThisBit}", 
                   new { controller = "Home", 
                         action = "Index", 
                         id = "",
                         ignoreThisBit = ""}  // Parameter defaults )

现在,您可以在 URI 末尾键入您想要的任何内容,应用程序将忽略它。

当您呈现链接时,您需要添加“友好”文本:

<%= Html.ActionLink("Link text", "ActionName", "ControllerName",
                    new { id = 1234, ignoreThisBit="friendly-text-here" });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET MVC 中创建友好的 URL? 的相关文章

  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • c# 从另一个类中的另一个静态事件引发事件

    需要帮助从另一个班级调用事件 我有已声明事件的课程 public class MxPBaseGridView GridView public event AddNewItemsToPopUpMenuEventHandler AddNewIt
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 使用 C# 中的 Google 地图 API 和 SSIS 包获取行驶距离

    更新 找到了谷歌距离矩阵并尝试相应地修改我的代码 我在这里收到无效参数错误 return new GeoLocation dstnc uri ToString catch return new GeoLocation 0 0 https 基
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • 无法为 wsdl 文件创建服务引用

    I have wsdl文件和xsd我本地机器上的文件 我想在项目中添加服务引用 我没有网络服务 我只有wsdl file 我收到以下错误 The document was understood but it could not be pro
  • 使用多线程进行矩阵乘法?

    我应该使用线程将两个矩阵相乘 有两件事 当我运行程序时 我不断得到 0 我还收到消息错误 对于每个错误 它在粗体行上显示 警告 从不兼容的指针类型传递 printMatrix 的参数1 我尝试打印输出 还要注意 第一个粗体块 这是我解决问题
  • 有没有办法直接在函数参数中格式化字符串而不是使用临时字符串?

    我有一个接受字符串 字符数组 作为参数的函数 void enterString char my string 当使用这个函数时 我经常发现自己想要输入格式化的字符串 我使用 sprintf 来做到这一点 然而 我每次都必须创建一个临时字符串
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 将 Swagger 与命名空间版本的 WebApi 结合使用

    我已经找到了如何使用基于名称空间的 WebAPI 版本这个班 https aspnet codeplex com SourceControl changeset view dd207952fa86 Samples WebApi Namesp
  • 运行测试项目时自动启动ASP.MVC项目

    我正在尝试为我的 ASP 网站设置一个测试项目 对于某些测试 我想使用 selenium 来执行端到端测试 因此 我的网站必须运行 以便测试可以访问该网站 运行测试时如何启动我的网站项目 请参考以下链接 我相信这是可能的 但会有点棘手 这些
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • CRTP——访问不完整类型成员

    相关问题 one https stackoverflow com questions 6006614 c static polymorphism crtp and using typedefs from derived classes tw
  • 如何在(功能)F# 中创建递归数据结构值?

    type 的值如何 type Tree Node of int Tree list 有一个以函数方式生成的引用自身的值吗 对于 Tree 的合适定义 结果值应等于以下 Python 代码中的 x x Tree x tlist x Edit
  • 将光标移动到 UITextField 的开头

    有没有办法让光标位于a的开头UITextField 当我显示带有内容的控件时 光标放置在文本的末尾 我想把它移到开头 UITextField符合UITextInput协议 它提供了让您控制所选范围的方法 这在我的测试中有效 void tex
  • Python:将 3D 椭球(扁形/长形)拟合到 3D 点

    亲爱的 stackoverflow 用户 我面临如下问题 我想在 python 脚本中将 3D 椭球体拟合到 3D 数据点 起始数据是一组 x y 和 z 坐标 笛卡尔坐标 我想要得到的是 3D 数据点凸包的最佳拟合椭球定义方程中的 a 和
  • AngularFire httpsCallable Object(...) 不是一个函数

    我想在我的 Ionic 3 应用程序中调用 httpsCallable 函数 我正在尝试遵循这些文档 https firebase google com docs functions callable https firebase goog
  • 在 Java 中实现双缓冲

    我有一个简单的 Java JFrame 画布 我每半秒左右更新一次屏幕上的内容 并且有闪烁 我想实现双缓冲来消除闪烁 但我对 Java 相当陌生 不熟悉如何做到这一点 我找到了一些例子 但不确定如何将他们的方法应用到我的方法中 以下是我现在
  • 删除 MS Excel 中特定字符左侧的所有文本

    这是一个与excel相关的问题 我想删除字符串中特定字符或多个字符左侧的所有文本 所有字符 例如 假设我的单元格中有一个字符串大家好 欢迎来到 stackoverflow 现在我想删除 堆栈 左侧的所有字符 意味着结果应该是堆栈溢出 仅限堆
  • WindowsBase.dll 中发生了“System.ComponentModel.Win32Exception”类型的第一次机会异常

    我有一个 NET 4 0 WPF 项目 当我打开文件对话框时 选择一些文件并按 确定 按钮 然后我在输出窗口中看到以下错误 WindowsBase dll 中发生了 System ComponentModel Win32Exception
  • Plotly r,按变量划分的线型

    我正在尝试制作一个散点图 其中线条样式由因子变量指定 就像颜色一样 但我无法让它工作 library plotly df lt data frame x rnorm 20 y rnorm 20 col c rep 1 10 rep 2 10
  • 将补充 Unicode 字符映射到 BMP(如果可能)

    我遇到了这样的问题 我的 XML 解析器 VTD XML 似乎无法处理 Unicode 补充字符 如果我在这里已经错了 请更正 看起来 解析器只使用这些字符的低 16 位 我无法切换到我正在处理的项目中的另一个解析器 我正在解析 Medli
  • 图书馆的异常处理策略

    构建 NET 库时 您的异常处理策略是什么 具体来说 您关于处理库调用内的异常并将其暴露给调用代码的政策是什么 例如 您是否会像对待其他函数一样对待库函数 从而让它无法处理的所有异常按原样流出 您会为该库创建自定义异常吗 您会捕获所有异常并
  • Fixtures、Selenium 和 Rails(天哪?)

    Rails 应用程序上的 Selenium 测试使用哪些数据 你从固定装置加载吗 使用现有的开发数据库 使用单独的 非固定装置 数据库 我正在考虑我的选择 我有一个 Rails 应用程序 其中包含一个大型 Selenium 测试套件 该套件
  • 使用 jqueryhammer.js 2 和事件委托长按(按住)

    我最近升级到hammer js 2 我注意到的第一件事就是 按住 已被 按下 取代 我的旧代码在事件委托方面工作得很好 但切换到按下似乎只有当我将其放在特定元素上时才有效 注意 我通过jquery插件使用hammer js 锤子 js 1
  • 将组件存储在状态中是个好主意吗?

    将整个 React 组件存储在组件状态或 redux 状态中是一个好习惯吗 是的 它是可选的 因为我们可以在状态中存储字符串并有条件地渲染组件 但在某些情况下 将组件存储在状态中更简单 例如 const components useStat
  • 证书中的“主题”是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 相关链接是这个MSDN 文章 http msdn microsoft com en us library bfsktky3 VS 80 a
  • getaddrinfo addrinfo 结果在堆栈或堆中

    至少我有点困惑 getaddrinfo 调用 更新 指向 addrinfo 结构的指针 当我要在同一范围 该函数 中使用 addrinfo 时一切都很好 但是如果我将该结构复制到另一个结构 通过分配它 会发生什么 请帮助我了解正在进行的基础
  • 在 mongodb 集群上创建第一个管理员用户时出现错误“无法添加用户:管理员未授权执行命令”

    我在谷歌云计算引擎中使用版本 3 4 的 mongoDB Cluster 实际上上周我的数据库受到了黑客的攻击 这就是为什么我考虑使用授权 这样我就可以避免这些类型的攻击 现在要添加授权我看到了这篇文章如何创建 mongodb 复制集群 h
  • 堆栈上的总变量大小是否有限制?

    在编码时 我们是否应该考虑对堆栈上创建的变量的总大小进行一些限制 如果是 我们应该根据什么来决定 它取决于操作系统 内存可用性等吗 是否有任何编译器选项可以检查这一点 任何指向该方向的指示也会有所帮助 这是 C 标准中不太用户友好的领域之一
  • 使用 EF 6 alpha3 Code First 和迁移创建 __MigrationHistory 表部署到 SQL Azure 时出错

    我首先使用 EF 6 alpha 3 代码 当我尝试运行 Update Database 命令在 SQL Azure 上创建数据库时 出现以下错误 此版本的 SQL Server 不支持没有聚集索引的表 请创建聚集索引并重试 我追踪到 Mi
  • 如何在 ASP.NET MVC 中创建友好的 URL?

    如何在 ASP NET MVC 框架中生成友好的 URL 例如 我们有一个如下所示的 URL http site catalogue BrowseByStyleLevel 1 1 是要浏览的学习级别 在本例中为较高级别 的 Id 但我想以与