1
我創造了我的ASP.net MVC項目一個模式:查詢結果添加到模型的列表在asp.net mvc的
public class ProductListingModels:ItemEntityDataContext
{
public int ID { get; set; }
public string Name { get; set; }
public int DepartmentID { get; set; }
public int BrandID { get; set; }
}
而且我有一個控制器:
public class ProductListingController : Controller
{
// GET: /ProductListing/
public JsonResult Index(string depID)
{
Context DataContext = new Context();
JsonResult jr = new JsonResult();
int dep = Convert.ToInt32(depID);
var ien_item = from i in DataContext.DataContext.Items
join c in DataContext.DataContext.Categories on i.CategoryID equals c.ID
join d in DataContext.DataContext.Departments on i.DepartmentID equals d.ID
join brand in DataContext.DataContext.Brands on i.BrandID equals brand.ID
orderby i.LastUpdated descending
where i.DepartmentID == dep && i.Active > 0 && i.WebsiteShow > 0 && c.Active > 0
select i;
List<ProductListingModels> prom = new List<ProductListingModels>();
//
//Adding ien_item to the prom
//
jr.Data = prom;
jr.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return jr;
}
}
public class Context : ICEWeb.Models.ItemEntityDataContext
{
}
我想將linq(ien_item)從數據庫查詢的每個數據添加到ProductListingModel(prom對象)的對象 ,然後將其作爲json返回到我的視圖。
請問誰能給我一些想法。
非常感謝。
感謝tvanfosson,但如果我有超過十個字段我想選擇,我必須使用SELECT NEW {......}嗎? – Nothing 2012-04-19 01:33:08
你也可以使用類似AutoMapper的東西(http://automapper.org/)來映射實體和視圖模型。在這種情況下,您只需選擇該項並調用'ToList()'將它們存入內存,然後(假設您已設置了映射)執行'.Select(m => Mapper.Map ());' –
tvanfosson
2012-04-19 01:51:39
如果對象描述了一個產品,那麼模型的類名應該是Product,而不是ProductListingModels。您應該找到並遵循一些非常好的MVC示例來了解如何完成這些事情以及如何佈置它們。你的代碼示例顯示了幾個領域缺乏理解。 – 2012-04-19 02:33:07