簡體   English   中英

ASP.NET MVC:將查詢數據傳輸到控制器中的模型類對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM