[英]ASP.NET MVC : transfering query data to model class object in controller
我有一個聯接查詢
var DetailsQuery = (from a in db.aTable
join b in db.bTable on a.carID equals b.ID
where a.ID==id
select new
{
ID = a.ID != null ? a.ID : 0,
aName= a.aName,
carName= b.carName,
}).Take(1);
我使用Take(1)
做的正確嗎? 實際上,任何方式都必須只有一行具有該ID的行,因此我應該編寫Take(1)
還是沒有它就可以工作?
現在,我為視圖創建了一個新的模型類
public class ModifiedaTableModel
{
[Key]
[Required(ErrorMessage = "aIDis required.")]
public int aID{ get; set; }
[Required(ErrorMessage = "aName required.")]
public string aName{ get; set; }
[Required(ErrorMessage = "carName required.")]
public string carName{ get; set; }
}
如何將查詢對象轉移到此模型,以便可以在視圖中顯示它?
var DetailsQuery = (from a in db.aTable
join b in db.bTable on a.carID equals b.ID
where a.ID==id
select new
{
ID = a.ID != null ? a.ID : 0,
aName= a.aName,
carName= b.carName,
}).FirstOrDefault();
在視圖中使用視圖模型:
@model <your project name>.ViewModels.ModifiedaTableModel;
假設您的視圖模型類位於“ ViewModels”文件夾中。
控制器:
var DetailsQuery = from a in db.aTable
join b in db.bTable on a.carID equals b.ID
where a.ID == id
select new ModifiedaTableModel
{
ID = a.ID != null
? a.ID
: 0,
aName = a.aName,
carName = b.carName
});
return View(DetailsQuery.FirstOrDefault());
視圖(可能需要模型的命名空間):
@model ModifiedaTableModel
如果僅選擇匿名類型對象,則在視圖呈現期間可能會發生InvalidOperationException。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.