ASP.NET MVC は初めてなので、Controller メソッドのシグネチャについて疑問に思っていました。私が見たすべての例では、実際に ViewResult インスタンスなどを返す場合でも、常に ActionResult を返すように見えます。
一般的に見られる例を次に示します。
public ActionResult Index()
{
return this.View();
}
そのような場合、メソッドを として宣言し、public ViewResult Index()
より強力な型サポートを取得する方が理にかなっているのではないでしょうか?
実験により、これが機能することが示されているため、可能であると思われます。
ポリモーフィズムが必要な状況があることは承知していますが (たとえば、特定の状況でのみリダイレクトしたいが、他の状況でビューを表示したい場合)、メソッドが常にビューを返す場合は、ViewResult をもっと見つけます望ましい。
将来の互換性に関しては、ActionResult は明らかにより堅牢な署名を提供しますが、コード ベース全体を制御する場合は、将来必要になった場合にメソッドの署名をより一般的な戻り値の型に変更することが常に可能です。
私が認識していないその他の考慮事項はありますか、それとも先に進んで特定の戻り値の型でコントローラーメソッドを宣言する必要がありますか?