2017-03-10 9 views
-1

コントローラの特定のオブジェクトタイプのリストをビューのモデルとして部分ビューに渡します。テーブルには、各行がモデルからの各オブジェクトに関する最小情報を含むように表示されます。各行にはボタンがあり、クリックするとブートストラップモーダルが起動し、オブジェクトの詳細が表示されます。ボタンをクリックすると、モデル内の項目のリストから対応する項目を取得し、その項目のすべてのプロパティを表示できるようにします。c# - モデルのアイテムのリストから特定のアイテムを取得し、ボタンのクリック時に選択したアイテムのプロパティを表示する方法

私のモデルには以下のタイプがあるとします。

List<T> ObjectList - Model 
T Object - Individual object 

どのように私は、ボタンのクリックでオブジェクトのIDを渡し、オブジェクトの詳細については、再度、データベースを照会せずに、モデル内の項目のリストから項目を取得することができますか?

+0

ウェブはステートレスです。ビューに各オブジェクトのすべてのプロパティを含めなかった場合は、コレクションをどこかにキャッシュしていない限り、データベースを再度呼び出す必要があります。 –

+0

各オブジェクトのすべてのプロパティは、モデル内のオブジェクトのリストにあります。どのように私はそれらからアクセスして表示することができますか? –

+0

あなたのモデルはクライアントではなく、サーバー上にあります(ビューにすべてのオブジェクトのすべてのプロパティを含めない限り - 例えばjavascript配列にシリアル化するか、 'data- *'属性や隠し入力などを使用します)。 –

答えて

2

あなたはプット属性itemidのように、カスタム属性を使用し、そのメソッドのdefinitationを書きながら、jQueryののattr()を使用してIDを取得し、

<button type="button" itemid = '@model.id' onclick="showModal(this)">Show Details!</button> 

とJSで以下のような方法にボタンオブジェクトを渡すことができます。

function showModal(obj) { 
    var id = $(obj).attr('itemid'); 
    // your code here 
} 

私はメソッドにオブジェクト全体を渡しましたが、あなたはidだけを渡すことができますが、他の詳細も渡すと、オブジェクトを渡すことができます。

+0

このIDを使ってリストから要素を取得できますか? –

+1

あなたは既にあなたからリストを持っています。そこから取得してください。 – Imad

+0

どうすればいいですか?私はjavascript変数にオブジェクトIDを持っています。これを使ってリストから要素を取得するにはどうすればよいですか? –

関連する問題