例如,来自Rails Guides。
def index
@posts = Post.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
end
end
如果我调用此控制器并且请求类型为html,则会为您提供视图。如果请求类型是xml,则为您提供XML。这里没什么新鲜的。
在ASP.NET MVC中执行此操作的最佳方法是什么?我知道你可以深入了解这个请求,但我很好奇其他人的所作所为。我不询问如何检查请求以查看请求类型是什么,我知道如何做到这一点,我正在寻找人们处理这个的任何标准或酷的方式。可能有一些非常好的处理方法,我正在寻找一些想法。
事实上,我很惊讶框架没有从Rails中复制它。
答案 0 :(得分:0)
您可以查看MVCContrib的simply RESTful routing。
答案 1 :(得分:0)
也许是这样的?
public class MyController : Controller
{
public ActionResult Index()
{
var posts = db.GetTable<Post>();
ViewData["Posts"] = posts;
return RespondTo(new ActionResultChoiceMap
{
{ "html", () => View() },
{ "json", () => Json(posts) },
});
}
}
与
class ActionResultChoiceMap : IEnumerable<ActionResultChoice>
{
public void Add(string key, Func<ActionResult> handler);
public ActionResult Get(string key);
}
和
ActionResult RespondTo(ActionResultChoiceMap map)
{
var key = ... // get desired result type from request
return map.Get(key);
}