6

ASP.NET MVC コントローラー アクションに名前を付けたいのです123gamesが、数値が原因で許可されていません。

を使用する必要がありますActionNameAttributeか?

4

1 に答える 1

11

そうです。C# 言語仕様では、セクション 2.4.2「識別子」に従って、数字で始まる識別子を禁止しています。

識別子開始文字:

  • 文字-文字
  • _ (アンダースコア文字 U+005F)

数値がないことに注意してください。

つまり、 を使用して、次ActionNameAttributeのように、数字で始まるアクションを持つルートを作成できます (URL にはそのような制限がないため)。

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

アンダースコアの使用は、識別子の最初の文字に有効であることに注意してください(上記と同じセクション、特に以下の強調鉱山に従って):

このセクションで示す識別子のルールは、Unicode 標準付属書 15 で推奨されているものと正確に対応していますが、アンダースコアが最初の文字として許可されていることを除きます(C プログラミング言語の伝統と同様)...

そのため、メソッド名 (つまり_123Games) の先頭としてこれを使用して、C# コード内で URL フラグメントと同じように密接に配置できるようにしました。

于 2013-01-25T14:43:38.127 に答える