在Ruby on Rails的可以編寫一個簡單的控制器的動作,例如:在ASP.Net MVC中是否有與Ruby on Rails的respond_to format.xml等效的東西?
def index
@movies = Movies.find(:all)
respond_to do |format|
format.html #index.html.erb
format.xml { render :xml => @movies }
format.json { render :json => @movies }
end
end
對於那些不熟悉的RoR,def index
在這種情況下將是public ActionResult Index()
一個ASP.Net MVC控制器內的等效和將允許下列調用:
http://example.com/Movies/Index
返回作爲來自視圖index.html.erb
一個html頁面(認爲的Index.aspx)
http://example.com/Movies/Index.xml
返回XML格式的相同數據(@movies
是包含所有的視圖使用數據中的對象)
http://example.com/Movies/Index.json
製作時返回一個JSON字符串,實用的javascript調用需要相同的數據/邏輯
在ASP.Net MVC的等效流將(如果可能的話)可能是這個樣子(即使能夠更簡潔,甚至越好):
public ActionResult Index()
{
Movies movies = dataContext.GetMovies();
// any other logic goes here
switch (format)
{
case "xml":
return View("XMLVIEW");
break;
case "json":
return View("JSONVIEW");
break;
default:
return View();
}
}
這是非常方便的不必保持了一堆不同的動作弄亂你的控制器,有沒有辦法做到在ASP.Net MVC類似的東西?
我不是一個紅寶石男人,但在哪裏|格式|來自請求頭? – 2010-01-08 20:45:51
增加了一些功能說明,希望它有幫助。 – mynameiscoffey 2010-01-09 00:01:31