默认情况下,ASP.NET MVC使用ContentResult for控制器方法,返回的结果不是从actionresult类型继承的。这就是为什么如果我们将返回一些poco实体,它将只是它的类型名称。更改默认控制器actionresult
我可以重载控制器中的某些东西,使其默认返回jsonresult。
例子:
//返回JSON的产品表示,而不是产品类型名称
public MyController: Controller
{
public Product MyAction()
{
return new Product { Name = "Foo", ID = 1 };
}
}
最好的问候, 阿列克谢Z.
我想避免的ActionResult作为返回参数。 我希望我的方法被声明为:public Product MyAction() MVC中有可能吗? – 2010-01-09 10:03:18
您可以尝试覆盖项目类上的ToString(),以便它返回格式为JSON的对象,但您可能必须每次都在手动方法中手动更改Response的ContentType,否则它将使用默认值 - 绝对不是'application/json'。为什么你如此热衷于让方法返回一个'Product'而不是'ActionResult'?解开单元测试的JSON结果并不难。 – tvanfosson 2010-01-09 13:56:03