なぜ属性を使用する必要があるのか教えてくださいNonAction
。たとえば、Update、Delete、Insert など、複数の送信値を持つフォームがあるとします。すべての送信ボタンに共通のフォームがあるため、コントローラー内で送信値を切り替えて、それに応じて動作します。
このような:
public ActionResult asd(string submitButton){
switch(submitButton){
case "Insert":
return Insert();
// bla bla bla
}
}
[NonAction]
public ActionResult Insert(){
// some code inside here
return View();
}
もう一度言いますが、なぜ次のようなものではなく NonAction を使用する必要があるのでしょうか。
public void Insert(){
// some code inside here
}
ベストアンサー1
属性を省略することもできますNonAction
が、その場合でもメソッドはアクション メソッドとして呼び出すことができます。
MSDNサイトより(参照):
デフォルトでは、MVC フレームワークはコントローラー クラスのすべてのパブリック メソッドをアクション メソッドとして扱います。コントローラー クラスにパブリック メソッドが含まれており、それをアクション メソッドにしたくない場合は、そのメソッドを NonActionAttribute 属性でマークする必要があります。