我有一个控制器,用于将JSON
数据列表传递给我的视图。目前我正在使用Linq to Entities
来填充Viewmodel,但由于它只是15对的静态列表,我想对Viewmodel进行硬编码,但我不知道该怎么做。这是我的控制器
public JsonResult GetSites()
{
var sites = context.vAaiomsSites.Select(s => new vAaiomsSitesVM
{
ID = s.ID,
SiteName = s.SiteName
}).OrderBy(s => s.SiteName);
return Json(sites, JsonRequestBehavior.AllowGet);
}
我只需要一个这样的数组:
SiteID:1,SiteName:Barter Island
SiteID:2,SiteName:Cape Lisburne
....再多12次。
答案 0 :(得分:2)
使用集合初始值设定项创建ViewModel的数组(或List<T>
):
public JsonResult GetSites()
{
var sitesArray = new vAaiomsSitesVM[]
{
new vAaiomsSitesVM
{
ID = 1,
SiteName = "Barter Island"
},
new vAaiomsSitesVM
{
ID = 2,
SiteName = "Cape Lisburne"
}
// And so on...
};
var sites = sitesArray.OrderBy(s => s.SiteName);
return Json(sites, JsonRequestBehavior.AllowGet);
}
答案 1 :(得分:2)
如果你真的想对它进行硬编码,你可以这样做。
为ViewModel创建一个类
public class Site
{
public int SiteID { set;get;}
public string SiteName { set;get;}
}
并在你的Action方法中
public JsonResult GetSites()
{
var list=new List<Site>();
list.Add(new Site{ SiteID=1, SiteName="SiteName 1" } );
list.Add(new Site{ SiteID=2, SiteName="SiteName 2" } );
//13 more times !!!!
return Json(list, JsonRequestBehavior.AllowGet);
}
但为什么要对其进行HardCode? strong>我建议您尽可能避免使用它。如果您担心每次查询数据库,您可能会考虑将数据存储在中间缓存中从那里分层并获取它,从而避免调用数据库。三思而后行。