ViewModelを使用して、LemQクエリを@modelを使用した表示に@model IEnumerable<MyWebProject.ViewModels.MyViewModel>
として渡すことができます。 質問:しかし、1.次の例でView Modelを使用したくない場合はどうすればいいですか?2.その場合、@modelディレクティブは何ですか?ViewModelを使用せずにViewにLINQクエリを送信する方法
のViewModel:
public class MyViewModel
{
public string CustomerName{ get; set; }
public int CustomerOrderNo{ get; set; }
}
コントローラー:
public ActionResult Index()
{
MyViewModel vm= new MyViewModel();
var vm = (from c in db.Customers
join o in db.Orders
select new { CustomerName = c.Name, CustomerOrderNo = o.OrderNo}).ToList();
return View(vm);
}
ビュー:
@model IEnumerable<MyWebProject.ViewModels.MyViewModel>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.CustomerName)
</td>
<td>
@Html.DisplayFor(modelItem => item.CustomerOrderNo)
</td>
</tr>
}
あなたはそれをやってはいけません、viewmodelを使用して、なぜそれを使いたくないのですか? –
linq式は、匿名オブジェクトのコレクションを返します。ビューをバインドすることはできません。ビューモデル/ DTOを作成して使用する必要があります – Shyju
厳密な不規則な状況がない場合、ハードコーディングされたビューモデルは常にビューを実装するのに適しています。 –