、我々はVisual Studioでのコントローラを足場とき、我々は、デフォルトのアクションを取得:一部のデフォルトのMVCアクションでIDがnullになるのはなぜですか? ASP.NET MVCのアプリで
- インデックス
- は
- 編集
- 詳細
上記のうち、いくつかは、パラメータのためのnullable id(int? id
)を持っています:Details、Edit(GETバージョン)、Del ete、DeleteConfirmed。そして、少なくとも一部では、そのIDを確保するために、次のコードがありますnullではない:
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
すべてのこれらのアクションにはIDが必要です。オプションではありません。何もないことの詳細を表示したり、何も削除したりすることはできません。また、nullの場合はBadRequest
ステータスコードを生成します。
なぜ、これらのパラメータはnullではない整数で始まるのですか?
URLは文字列、 "id"はintです。ルート内のパラメータをintに変換できない場合はどうなりますか?何らかの一般的なエラーか、コントローラが無効な(つまりヌルの)IDで何をするべきか指示する必要がありますか? – maccettura
ありがとう、@ maccettura。しかし、nullの場合は、ユーザーに知らせるために例外をスローする必要があります。あるいは、Visual Studioが私たちのために生成するチェックを介してそれを検出する必要がありますか? – Alex
いつも例外を投げるべきですか?何か特別な処理が起こるはずですか?ログに記録する必要がありますか? MVCコードに含まれているボイラープレートコードは単なる提案であり、要件ではありません。 – maccettura