默认情况下,ASP.NET MVC将ContentResult用于控制器方法,该方法返回未从actionresult类型继承的结果。这就是为什么如果我们将返回一些poco实体,它将只是它的类型名称。
我可以在控制器中重载某些内容,使其默认返回jsonresult。
示例:
//返回json产品表示而不是产品类型名称
public MyController: Controller
{
public Product MyAction()
{
return new Product { Name = "Foo", ID = 1 };
}
}
祝你好运, Alexey Z。
答案 0 :(得分:3)
为什么不直接返回JSonResult?
public ActionResult MyAction()
{
return Json( new Product { Name = "Foo", ID = 1 } );
}
答案 1 :(得分:1)
您可以使用如下属性来装饰您的控制器:
public class ReturnJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var result = filterContext.ActionDescriptor.Execute(filterContext, filterContext.ActionParameters);
filterContext.Result = new JsonResult {Data = result};
}
}