1

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);
    }

次のような配列が必要です。

サイト ID: 1、サイト名: バーター島

サイト ID: 2、サイト名: リスバーン岬

....あと12回。

4

2 に答える 2

3

コレクション初期化子を使用してList<T>、ViewModel の配列 (または )を作成します。

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);
}
于 2012-07-30T18:45:50.523 に答える
2

本当にハードコードしたい場合は、このようにすることができます。

ViewModel のクラスを作成する

public class Site
{
  public int SiteID { set;get;}
  public string SiteName { set;get;}
}

そしてあなたのアクションメソッドで

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 したいのですか? 可能であればこれを避けることをお勧めします。毎回データベースにクエリを実行することを心配している場合は、データを中間のキャッシュ レイヤーに保存し、そこから取得して、データベースへの呼び出しを回避することを検討してください。考え直してください。

于 2012-07-30T18:46:03.937 に答える