Asp.Net MVC:如何在网址中启用破折号?

2024-03-15

我想在我的网址中用破折号分隔单词。所以而不是:

/MyController/MyAction

我想要:

/My-Controller/My-Action

这可能吗?


您可以像这样使用 ActionName 属性:

[ActionName("My-Action")]
public ActionResult MyAction() {
    return View();
}

请注意,您将需要调用您的视图文件“My-Action.cshtml”(或适当的扩展名)。您还需要在任何 Html.ActionLink 方法中引用“my-action”。

对于控制器来说没有这样简单的解决方案。

编辑:MVC5 更新

启用全局路由:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapMvcAttributeRoutes();
    // routes.MapRoute...
}

现在有了MVC5,属性路由已经被吸收到项目中。您现在可以使用:

[Route("My-Action")]

论行动方法。

对于控制器,您可以应用RoutePrefix属性将应用于该控制器中的所有操作方法:

[RoutePrefix("my-controller")]

使用的好处之一RoutePrefixURL 参数也将被传递到任何操作方法。

[RoutePrefix("clients/{clientId:int}")]
public class ClientsController : Controller .....

Snip..

[Route("edit-client")]
public ActionResult Edit(int clientId) // will match /clients/123/edit-client
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.Net MVC:如何在网址中启用破折号? 的相关文章

随机推荐

  • 链接列表。按顺序插入整数

    我有一个整数链表 当我插入一个新节点时 我需要不是在末尾插入它 而是按顺序插入 即2 4 5 8 11 12 33 55 58 102等 我不认为我正在将其插入正确的位置 看到我做错了什么了吗 Node newNode new Node s
  • Matplotlib 只是给出错误消息

    我正在尝试使用 Matplotlib 我以前在工作中使用过它 运行得很好 我正在使用 IDLE 环境 并且在 Matplotlib 网站上读到交互模式在 IDLE 中不起作用 但在这种情况下这应该不重要 另外 该库似乎导入得很好 gt gt
  • 在 SQL Server 中显示创建表表名

    在 MySQL 中可以这样做show create table tablename SQL Server 的等效项是什么 在 SSMS 中 右键单击表节点并选择 脚本表为 创建 没有内置的 编写此表脚本 T SQL sp help tabl
  • Java 6 SE 向量已经过时了吗?

    package myjava import java util public class Vectors public static void vec Vector v new Vector 我正在使用 net beans IDE 6 9
  • 如何使用 puppeteer 操纵垫滑块值

    我正在尝试使用 puppeteer 以编程方式更改垫子滑块值 但我无法让它工作 这是我尝试过的 async function changeSliderValue page Page try const thumb await page ma
  • Cookie 不会在 Windows Phone 应用程序上发送,但在 Windows 8 应用程序中会使用相同的代码发送 Cookie

    我有一个基本类 它使用以下命令发出 GET 和 POST 请求HttpWebRequest HttpWebResponse 我使用我的类登录 API 然后请求数据 在 Windows 8 Metro 应用程序中 它完全按照预期工作 在 Wi
  • 我在运行项目时遇到 java.lang.StackOverflowError 吗?

    我正在尝试使用 Spring 和 postgres 使用 maven 来实现 solr 搜索 但是在运行应用程序时我得到 404 异常 Exception processing loader WebappLoader solrjExampl
  • 创建本机 C++ OpenGL 3D 编辑器并将其用作 C# 中的 WinForms 或 WPF 控件

    我想创建一个简单的3D编辑器程序 并且我不喜欢C windows编程 但我也不想在使用 OpenGL 时弄乱托管代码 因此 可以在本机 C 中创建一个将托管 OpenGL 3D 绘图表面的控件 无需其他控件 也具有接口 方法和属性 并将其用
  • Graphql @include 带表达式

    我正在实现一个查询 该查询应该根据用户登录状态提供响应中的某些字段 具体来说 我想得到 点率 仅当字段 authenticationToken已通过并且希望避免通过 authenticated在下面的查询中 我想避免发送的原因 authen
  • Linux 上的 APL 键映射 (GNU APL)

    我的祖父是 60 年代 70 年代 IBM 的一名 APL 程序员 他最近开始使用 Linux 我一直在帮助他设置和使用 GNU APL http www gnu org software apl http www gnu org soft
  • Google Analytics 跟踪中的 AnalyticsReceiver

    在Google Analytics Tracking Ver1中 它有类AnalyticsReceiver 但是当我使用 Google Analytics Tracking Ver2 时 它还没有AnalyticsReceiver班级 我不
  • 在 Android 上使用 NFC 软件卡模拟控制完整的 APDU

    我正忙于开发一个应用程序来模拟 Nexus 7 上使用 CM10 1 与 ACR122U102 读取器 写入器的正常 APDU 通信 我发现这个博客是关于软件卡模拟 http nelenkov blogspot nl 2012 10 emu
  • Visual Studio 2010无法启动程序.dll

    我的 Visual Studio 2010 有问题 当我单击 开始调试 按钮时 它就开始调试 似乎没有错误 我只是在其上创建一个 按钮 但它会显示Unable to start program c users xx dll 现在有人怎么解决
  • 使用“ref”键将“引用类型”作为参数传递给方法是否有意义? [复制]

    这个问题在这里已经有答案了 可能的重复 C 引用类型变量的 ref 有什么用 https stackoverflow com questions 961717 c what is the use of ref for reference t
  • 按顺序数字分组

    我有一些这样的数据 row id 1 1 2 36 3 37 4 38 5 50 6 51 我想查询它看起来像这样 row id group 1 1 1 2 36 2 3 37 2 4 38 2 5 50 3 6 51 3 这样我就可以按数
  • PHP 现在设置格式 YYYY-MM-DD

    我需要以这种格式将变量设置为当前日期 例如 2012 05 12 我知道这是 YYYY MM DD 吗 我试过了 date date yyyy mm dd strtotime now 但这并没有将日期保存到 mysql 因此它显示为 000
  • 如何将 OpenIdconnect 与 istio 集成?

    我想使用以下方式对最终用户进行身份验证JWT由 OpenId 连接提供者 如 keycloak 或 auth0 etc 提供istio服务网格 但我可能无法成功集成它 因为我对 JWT auth 和 istio 很陌生 有人可以提供正确的信
  • 防止“持久对象异常”

    我有一个非常基本的 JAX RS 服务 BookService下面的类 允许创建类型的实体Book 也见下文 POST有效负载 acquisitionDate 1418849700000 name Funny Title numberOfP
  • Haskell 重叠实例和类型函数

    我有以下类型类 它模拟了类似 SQL 的查询优化 class OptimizableQuery q where type Optimized q optimize q gt Optimized q instance Query q gt O
  • Asp.Net MVC:如何在网址中启用破折号?

    我想在我的网址中用破折号分隔单词 所以而不是 MyController MyAction 我想要 My Controller My Action 这可能吗 您可以像这样使用 ActionName 属性 ActionName My Actio