【发布时间】:2011-09-30 00:08:34
【问题描述】:
我不知道这是否是处理某事的正确方法,但我希望是这样。下面的示例是一个重型控制器,绝对是错误的方法,但它理解了我正在寻找的东西。
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); }
}
}
【问题讨论】:
-
附带说明,
MultiPurposeResult不是最好的名称...我很想知道正确的 Result 名称应该是什么...我似乎总是在命名方面遇到困难。 -
也许
RestActionResult是一个更好的名字?
标签: asp.net-mvc web-services asp.net-mvc-3 actionresult