我想使用ActionFilter的返回不同格式(JavaScript/XML/JSON/HTML)的控制器的Model(數據)。下面是我在哪裏至今:在控制器的ActionResult上使用ActionFilter返回JsonResult
的ActionFilter:
public class ResultFormatAttribute : ActionFilterAttribute, IResultFilter
{
void IResultFilter.OnResultExecuting(ResultExecutingContext context)
{
var viewResult = context.Result as ViewResult;
if (viewResult == null) return;
context.Result = new JsonResult { Data = viewResult.ViewData.Model };
}
}
而且它的實現:
[ResultFormat]
public ActionResult Entries(String format)
{
var dc = new Models.WeblogDataContext();
var entries = dc.WeblogEntries.Select(e => e);
return View(entries);
}
的OnResultExecuting
方法被調用,但我沒有得到的模型(數據)返回並格式化爲JSON對象。我的控制器只呈現視圖。
更新:我遵循Darin Dimitrov的回答this question的建議。
IResultFilter.OnResultExecuting返回void。 Json類在這種情況下不可用。 – roosteronacid 2009-11-02 16:28:48