我不知道这是否是接近某件事的正确方法,但我希望是这样。下面的例子是一个沉重的控制器,绝对是错误的方法,但它得到了我正在寻找的想法。如何使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'是一个更好的名字? –