默認情況下,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