你可以從一個動作返回json的最普通的方式是簡單地調用Json()方法。
return Json(viewModel);
如果您是專門爲jqGrid返回數據,則可以使用您自己的ActionResult。這是我們使用的。我們也有一個擴展方法來從我們的服務分頁封裝器轉換成這個結果。
public class TableResult : ActionResult
{
public override void ExecuteResult(ControllerContext context)
{
context.HttpContext.Response.Write(ToJqGridJson());
}
public object ToJqGridJson()
{
return new {total = Total, page = Page, records = Records, rows = Rows};
}
public int Total { get; set; }
public int Records { get; set; }
public int Page { get; set; }
public object[] Rows { get; set; }
}
在控制器:
return new TableResult() { ... };
或 返回queryResults.ToTableResult();
至於未來的證明,甚至不要嘗試!你將會得到很多大的前期設計,我保證它不會有回報。我們學習了艱難的方式,最近纔開始拋出大量的抽象。如果您不確切知道將來如何使用它,則沒有意義編寫代碼。此外,WCF可以很容易地被MVC應用程序本身取代。 MVC不必僅返回網站。我們已經轉向使用.net 4.0的JavaScript串行器+ MVC +客戶端JavaScript解串器來提供Web服務。你可以分享你已經爲MVC編寫的認證,加上所有的過濾器等,而不必擔心配置WCF的可怕混亂。看看技術在向何處發展:移動和集成!你不會在你的手機上做WCF。看看JSON,ATOM,RSS等
http://ayende.com/Blog/archive/2011/02/23/flatten-your-architecture-simplicity-as-a-core-value.aspx
架構,因爲它是不能改變的。在企業環境中,你有太多的運氣壓倒一名建築師,因爲你太陽能夠提早出現。我正在尋找的是如何在考慮遠程調用WCF層的成本的同時做些事情。 – 2011-02-25 15:10:55