我不知道這是否是接近某件事的正確方法,但我希望是這樣。下面的例子是一個沉重的控制器,絕對是錯誤的方法,但它得到了我正在尋找的想法。如何使ASP.NET MVC Action返回不同的格式?
public class PeopleController : Controller
{
public ActionResult List(string? api)
{
MyViewModel Model = new MyViewModel();
if (api == "json") {
// I'd like to return the Model as JSON
} else if (api == "XML") {
// I'd like to return the Model as XML
} else {
return View(Model);
}
}
}
現在我需要能夠做的是模型返回查看,如果它被要求這樣
但是我也喜歡輸出JSON如果這樣要求的話
或者輸出XML,如果它的要求是這樣
這是完全錯誤的?
如果不是,那麼實現此目標的最佳方法是什麼?
我想用一個自定義MultiPurposeResult
實現它,可以做所有的過濾爲我,然後返回它,因爲這
public class PeopleController : Controller
{
public MultiPurposeResult List(string? api)
{
MyViewModel Model = new MyViewModel();
return MultiPurpose(Model); }
}
}
編輯
的我發現這個博客裏面做同樣的方法,因爲我的第一個代碼塊。
http://shouldersofgiants.co.uk/Blog/post/2008/10/16/Creating-a-RESTful-Web-Service-Using-ASPNet-MVC-Part-5a-e28093-HTTP-Response-Codes.aspx
作爲一個側面說明,'MultiPurposeResult'是不是最好的名字......我喜歡要知道什麼是適當的結果名稱應該是...我似乎總是在命名上掙扎。 –
也許'RestActionResult'是一個更好的名字? –