In Ruby on Rails Sie eine einfache Controller-Aktion wie schreiben:Gibt es in ASP.Net MVC ein Äquivalent zu reply_to format.xml von Ruby on Rails?
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
Für diejenigen, die nicht mit RoR, def index
in diesem Fall wäre das Äquivalent von public ActionResult Index()
innerhalb einer ASP.Net MVC-Controller und ermöglicht es dem folgende Aufrufe:
http://example.com/Movies/Index
kehrt als hTML-Seite aus der Sicht index.html.erb
(man denke index.aspx)
http://example.com/Movies/Index.xml
gibt die gleichen Daten im xML-Format (@movies
ist das Objekt, die Daten alle Ansichten enthalten, verwenden)
http://example.com/Movies/Index.json
gibt einen JSON-String, nützlich, wenn JavaScript Anrufe die gleichen Daten benötigen/Logik
Einen äquivalenter Fluss in ASP.Net MVC würde (wenn möglich) so etwas wie dies wahrscheinlich aussehen (wenn es weniger ausführlich sein könnte, auch besser):
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();
}
}
Das ist wirklich praktisch, die nicht eine Reihe von verschiedenen Aktionen zu halten unübersichtlich Ihren Controller, ist es eine Möglichkeit, etwas ähnliches in ASP.Net MVC zu tun?
Ich bin kein Ruby Typ, aber wo ist | Format | komm her, ein Anfragekopf? –
Ein paar Erläuterungen dazu, wie es funktioniert, hoffe es hilft. – mynameiscoffey