私の ASP.Net MVC 4 では、コントローラーからビューに複数のデータテーブルを送信したいと考えています。次に、それらのデータテーブルはそのビューで反復されます。どうすればできますか?私はmvcの世界の新参者です。
期待していただきありがとうございます。
更新-単一のデータテーブルをビューに送信して反復する方法を知っています。しかし、複数のテーブルが関係している場合のテクニックを知る必要があります。
更新 - 私のビューは部分ビューです。
私の ASP.Net MVC 4 では、コントローラーからビューに複数のデータテーブルを送信したいと考えています。次に、それらのデータテーブルはそのビューで反復されます。どうすればできますか?私はmvcの世界の新参者です。
期待していただきありがとうございます。
更新-単一のデータテーブルをビューに送信して反復する方法を知っています。しかし、複数のテーブルが関係している場合のテクニックを知る必要があります。
更新 - 私のビューは部分ビューです。
モデルを使用してデータを表現することをお勧めします。これが MVC のポイントです。確かに、データテーブルを使用できますが、なぜですか?
datatable には単一のテーブル データしか含まれていないことに注意してください。複数のテーブルを含む DataSet を持っているか、データテーブルの一般的なコレクションだけを持っています。
データセットを使用している場合....
プロパティを使用してモデルを作成し、データセット内のデータテーブルをテーブルごと、行ごとに反復処理し、現在の行/テーブル用に作成しているモデルをコレクションに追加します。最後に、そのコレクションをビューに戻します。
データセット内のテーブルを反復処理するには...
DataSet ds = this.GetDataSet();
foreach (DataTable currentTable in ds.Tables)
{
foreach (DataRow currentRow in currentTable.Rows)
{
// looping through each row within this datatable
// at this point, you need to then map the current row data to the Model. I'll let you deal with this
}
}
現在使用しているコードを表示できるとよいでしょう。
最善の方法は、ViewModel (ビューを提供し、ビューに必要なデータを提供するクラス) として機能するクラスを作成することです。このクラスは、必要に応じて N 個のプロパティで構成されます。
コントローラー内で必要なのは、このクラスの新しいオブジェクトを作成し、クラスのプロパティ (目的の 4 つのデータテーブルなど) を入力し、このクラス オブジェクトをビューに送信して、テーブルを簡単に反復処理できるようにすることだけです。
例:
public class MyDataViewModel()
{
public DataTable FirstTable {get; set;}
public DataTable SecondTable {get; set;}
public DataTable ThirdTable {get; set;}
public DataTable ForthTable {get; set;}
}
コントローラー内で、新しいオブジェクトを作成し、プロパティ内にデータを入力します
var myDataObject = new MyDataViewModel();
myDataObject.FirstTable = // your First Table data ;
myDataObject.SecondTable = // your Second Table data ;
myDataObject.ThirdTable = // your Third Table data ;
myDataObject.ForthTable = // your Forth Table data ;
return view(myDataObject);
注:最終的な表現は状況によって異なります。私の推測では、データテーブルは必要なく、List<YOUR_OBJECT>
ビューにデータを保持するものを作成する方がよいでしょう
更新:List<YOUR_OBJECT>
Datatables の代わりに項目を作成するには、ViewModel クラスのプロパティをList<YOUR_OBJECT>
DataTables の代わりに変更します。非常に簡単だと思います:)。
MVC でビューを作成するときはいつでも、モデル/ViewModel をそのビューにバインドします。要件を考慮して、最初に対応するデータテーブルのビューモデル/モデルを作成し、データテーブルから対応するモデル/ビューモデルのリストにデータをバインドしてから、それらをビューに渡す必要があります。複数のデータテーブルを反復するには、diff の部分ビューを使用する必要があります。モデル。)