0

MVC3 を使用してイントラネット Web サイトを構築しています。3 つのテーブルを表示するビューがあります。3 つのテーブル データはすべて、1 つのデータベースからのみ取得されています。3 つのテーブル データに対して 3 つの異なるストアド プロシージャがあります。index.cshtml で 3 つの異なる部分ビューを使用することを考えています。また、3 つのストアド プロシージャを使用してデータを取得できます。

3つの部分ビューすべてのビューを返すようにコントローラーのインデックスメソッドを設定する方法を教えてもらえますか? ビューバッグを使用できます。しかし、オンラインで記事を読んだところ、ビューバッグを使用するのは良い方法ではないと書かれています。現在、コントローラーの Index メソッドは、1 つのストアド プロシージャを使用して 1 つの部分ビューのみのビューを返します。

前もって感謝します。

4

1 に答える 1

0

カスタム ビュー モデルを作成します。

モデル:

public class MyViewModel 
{
    public DataSet Result1 { get; set; }
    public DataSet Result2 { get; set; }
    public DataSet Result3 { get; set; }
}

コントローラーのアクション:

public ViewResult myAction()
{
    var myViewModel = new MyViewModel({
         Result1 = XXX, // get result 1
         Result2 = XXX, // get result 2
         Result3 = XXX  // get result 3
    });

    return View(myViewModel);
}

意見:

@model MyViewModel;

<div id="results1">@Model.Result1.Tables[0].Rows[0]["someValueFromDB"].ToString();</div>
... etc.
于 2012-06-12T19:01:09.390 に答える