私は最近、私が作業する必要がある解決策があるので、この質問が出ました。提出時にmvcフォームコントローラを変更する
私はいくつかの方法で、いくつかのロジックを行う制御部を有する:
public Controller1: MvcController
{
public ActionResult SomeLogic(Model model)
{
return view();
}
public ActionResult SomeLogic2(Model model)
{
return view();
}
}
私は異なる論理を行う第二のコントローラがあります
public Controller2: MvcController
{
public ActionResult SomeLogic(Model model)
{
return view();
}
public ActionResult SomeLogic2(Model model)
{
return view();
}
}
両方が同じビューに取り組んでいました:
ビューには送信時に機能する開始フォームが含まれています。
@using(Html.BeginForm("SomeLogic", "Controller1", FormMethod.Post)
と4つのボタンを提出:
<input type='submit' formaction='SomeLogic' value='submit' />
<input type='submit' formaction='SomeLogic2' value='submit2' />
<input type='submit' formaction='SomeLogic' value='submit3' />
<input type='submit' formaction='SomeLogic2' value='submit4' />
私は私が使用して提出リダイレクトしていますためのアクションを制御することができます知っている: formaction
属性を。
私はコントローラを変更する方法もありますか?
<input type='submit' formaction='SomeLogic' value='submit3' />
<input type='submit' formaction='SomeLogic2' value='submit4' />
が私の始まりの形で定義されているcontroller2
代わりのController1
に提出されますことを意味しています。
新しいコントローラを作成するか、すでに複雑なロジックでいっぱいになっている既存のコントローラを使用するかは、私の議論を解決します。
'formaction = "@のUrl.Action(" SomeLogicを使用して正しいコントローラに投稿できることを
注意"、" yourControllerName ")" ' –