我想使用ActionFilter以不同的格式(JavaScript/XML/JSON/HTML)返回控制器的Model(数据).这是我到目前为止的地方:
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 };
}
}
Run Code Online (Sandbox Code Playgroud)
它的实施:
[ResultFormat]
public ActionResult Entries(String format)
{
var dc = new Models.WeblogDataContext();
var entries = dc.WeblogEntries.Select(e => e);
return View(entries);
}
Run Code Online (Sandbox Code Playgroud)
该OnResultExecuting
方法被调用,但我没有得到返回的Model(数据)并将其格式化为JSON对象.我的控制器只是呈现视图.
更新:我遵循达林迪米特洛夫对这个问题的回答的建议.
cll*_*pse 12
这就是我想要的:
public class ResultFormatAttribute : ActionFilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuted(ActionExecutedContext context)
{
context.Result = new JsonResult
{
Data = ((ViewResult)context.Result).ViewData.Model
};
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8148 次 |
最近记录: |