私が現在取り組んでいるプロジェクトでは、現在、CorporateCustomer と PrivateCustomer の 2 つの個別のユーザー インスタンスがあります (後で増加する可能性があります)。どちらも抽象クラス Customer から継承します。
これらの顧客の違いを表示するために、現在 2 つの異なるビューが作成されており、これらは次の方法で同じアクションによってレンダリングされます。
[HttpGet]
public virtual ActionResult Edit()
{
if(User.IsCorporate)
return View("EditCorporate", new CorporateCustomer());
else
return View("EditPrivate", new PrivateCustomer());
}
[HttpPost]
public virtual ActionResult Edit(CorporateCustomer customer){...}
[HttpPost]
public virtual ActionResult Edit(PrivateCustomer customer){...}
情報を表示するだけの場合、これは魅力のように機能します。URL は各タイプで同じです。これが私たちが目指していたものです。
ただし、投稿を行うときは、単一のタイプしか指定できません。そうしないと、あいまいなアクション メソッドに遭遇するリスクがあります (もちろん、これは理にかなっています)。
ここで私の質問は次のとおりです。単一の URL を保持しながら、これら 2 つの異なるタイプを処理するエレガントな方法はありますか? または、基本クラスを非抽象化し、Request.Form コレクションの値を検索する運命にありますか?
誰かが解決策を思い付くことができれば感謝します(または、私がやっていることはばかげていて実行できないことをまっすぐに指摘してください)