Изменить результат действия контроллера по умолчанию - PullRequest
2 голосов
/ 08 января 2010

По умолчанию ASP.NET MVC использует ContentResult для метода контроллера, который возвращает результат, не унаследованный от типа actionresult.Вот почему, если мы вернем некоторую сущность poco, это будет только имя ее типа.

Могу ли я перегрузить что-то в контроллере, чтобы оно возвращало jsonresult по умолчанию.

Пример:

// возвращаем представление продукта json вместо typename продукта

public MyController: Controller
{
    public Product MyAction()
    {
          return new Product { Name = "Foo", ID = 1 };
     }
}

С уважением, Алексей З.

Ответы [ 2 ]

3 голосов
/ 08 января 2010

Почему бы просто не вернуть JSonResult?

public ActionResult MyAction()
{
    return Json( new Product { Name = "Foo", ID = 1 } );
}
1 голос
/ 10 октября 2011

Вы можете украсить свой контроллер таким атрибутом, как этот:

public class ReturnJsonAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var result = filterContext.ActionDescriptor.Execute(filterContext, filterContext.ActionParameters);
        filterContext.Result = new JsonResult {Data = result};
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...