6

我想将我的 ASP.NET MVC 控制器操作命名为,123games但由于数字,它不允许我这样做。

我需要使用ActionNameAttribute吗?

4

1 回答 1

11

是的你是。根据第 2.4.2 节“标识符”,C# 语言规范禁止以数字开头的标识符:

标识符开始字符:

  • 字母字符
  • _(下划线字符 U+005F)

请注意缺少任何数值。

也就是说,您可以使用ActionNameAttribute来创建一个带有以数字开头的操作的路由(因为 URL 没有这样的限制),如下所示:

[ActionName("123games")]
public ActionResult _123Games()
{
     // Action code.
}

请注意,使用下划线标识符的第一个字符有效(根据与上面相同的部分,特别是在下面,强调我的):

本节中给出的标识符规则与 Unicode 标准附件 15 推荐的规则完全一致,除了下划线允许作为初始字符(就像 C 编程语言中的传统字符一样)...

因此,我使用它作为方法名称的开头(即_123Games),以使其在 C# 代码中与 URL 片段一样紧密对齐。

于 2013-01-25T14:43:38.127 回答