ビューは 1 つしか持つことができません@model Folder.ModelName
が、2 つの異なるテーブルのデータを 1 つのビューに表示したい場合はどうすればよいでしょうか? これを行うにはどうすればよいですか?正しい方法は何ですか? たとえば、現在のユーザーのすべての利益を選択し、現在のユーザーのすべてのコストを 1 つのビューで選択したい場合、明らかに、これは 2 つの異なるモデルを持つ 2 つのテーブルです。asp.net mvc
基本的に私の質問は、パターンのルールと概念をどこで見つけることができるかということです。
質問する
932 次
1 に答える
2
ViewModel と呼ばれるものを作成します。ViewModel には、1 つ以上のエンティティ、メソッド、追加のフィールドなどを含めることができます。次に、この ViewModel をビューに渡します。例えば、
namespace Sample
{
public class ProfitCostViewModel
{
public Profit Profit { get; set; }
public Cost Cost { get; set; }
public decimal DoSomeCalculations()
{
// Do something
}
}
}
アクションで、この ViewModel クラスのインスタンスを作成し、Profit と Cost のプロパティを初期化します。次に、このオブジェクトをビューに渡します。ビュー内で、次のようにモデルを宣言できます。
@model Sample.ProfitCostViewModel
そしてそれを次のように使用します
<p>Current profit or something: @Model.Profit.SomeProfitProperty</p>
<p>Sample cost: @Model.Profit.SomeCostProperty</p>
これが、2 つ以上のエンティティをモデルとしてビューに渡す方法です。
更新:あなたの行動は次のようなものかもしれません:
public ActionResult YourAction()
{
var profitCostVm = new ProfitCostViewModel();
profitCostVm.Profit = LoadProfitFromSomewhere();
profitCostCm.Cost = LoadCostFromSomewhere();
return View(profitCostCm);
}
于 2013-03-02T21:54:01.267 に答える