私はasp.net mvcフレームワークが重複のかなりのビットに向かって私を導いていることを発見しています。たぶん私は物事を行う正しい方法がわからないので、私はいくつかの領域を列挙し、誰かが正しいアプローチを提案するかもしれません:asp.net mvcと複製
一般的なパラメータを受け入れないコントローラメソッド。
class A
class B : A
class C : A
class D : A
とコントローラのメソッド::
EditB(B obj)
EditC(C obj)
EditD(D obj)
すべてのコントローラは、まったく同じことを行うが、私は、私は一般的なコントローラパラメータを持つことができない1と仮定しています私は、次のような複数のクラスを、持っています2.モデルバインダーはクラスAにのみバインドされます。
次の問題は部分的な問題です。モデルが簡単に動作するように結合得るために、私は、次のようなメソッドを使用します。
Html.TextboxFor(m => m.blah.blahID)
をしかし、部分的にのみ共通でm.blahを持つ複数のビュー間で共有されているとき、私が行います
RenderPartial("BlahPartial", m.blah);
問題は今私がそれが部分的に不足しているように私が欲しいものを私に与えてくれるとは思わないということです。
最後に、コントローラの方法で、私はそれが難しいようinvidiual方法に共通するアルゴリズムを抽出するために見つける:私は、他の何に元のコントローラをそれらのものを返すことができないよう
if (a)
return ActionResult("Blah");
else
return ActionResult("Home");
(or RedirectToAction or return View("Home") etc.)
はプライベートメソッドに入れてdiffucltように見えます。