私は、送信するオブジェクトのリストからのデータを表示しているビューを持っています。これらのオブジェクトはすべて同じ基本クラスですが、いくつかの異なる派生型にすることができます。そう、私が持っている:MVC - オブジェクトタイプに基づくアクションを条件付きで使用する
class Item { public string Description {get;set;}
class VideoItem : Item { public int VideoId {get;set;} }
class PdfItem : Item { public pdfLocation {get;set;} }
私はすべて単一のリストにこれらを表示し、私はそれがこれらのそれぞれを処理する呼び出すことができ、一方のコントローラメソッドを持ってできるようにしたいと思います。メソッドのオーバーロードもうまくいくでしょう。
私はActionLinkとして接続していますが、オブジェクト全体をコントローラに渡す方法がわかりません。私がクラスを渡そうとすると、クラス名だけが渡されます(私はそれが.ToString()メソッドを使用していると仮定しています)
一意のIDを使用してデータベースを再クエリし、が、それは、私はすでにオブジェクトを作成した場合、私はそのままコントローラに渡すことができるはずと思われる、ない?
たぶんActionLinkのは最善の解決策ではありません。私は、コントローラが呼び出されるかを気にいけない。
アイディア?
より多くのコードを投稿してください。あなたのコントローラを表示し、同様に表示します。 –
ActionLinkはHTTP Getです。すべてのデータはクエリ文字列の一部でなければなりません。最も簡単な方法は、それぞれのクラスでToStringメソッドをオーバーロードして、クエリーストリングが –