Rückkehr ein ActionResult aus einem anderen ActionResult

Sagen, ich habe den folgenden code, verhöhnt, bis in den Editor, also entschuldigt eventuelle kleine Fehler 🙂

//Default page
public ActionResult Index()
    {
        var musicViewModel
        {
         Albums = GetTopSellingAlbums(5),
         Genres = GetTopGenres(5),
         Artists = GetTopArtists(5)
         };

        return View(musicViewModel);
    }

[HttpPost]
public ActionResult Index(MusicViewModel musicViewModel)
    {

        //For the example, pretend I have a class called musicStoreSubmission in my
        //viewmodel which holds a few different fields the user fills out.

        if(ModelState.IsValid)
        {
            //Do some actions based on the user submitting a form
        }

        //Else, refresh page with errors in Modelstate.
        var musicViewModel
        {
         Albums = GetTopSellingAlbums(5),
         Genres = GetTopGenres(5),
         Artists = GetTopArtists(5)
         };

        return View(musicViewModel);
    }

Meine Sorge ist, dass, um ein postback Fehler mit dem ModelState unwirksam, muss ich generieren das viewmodel wieder so, dass alle Elemente auf der Seite, die diese Objekte verwenden können erstellt werden (genres, Interpreten, etc.). Das problem ist, es verlangt von mir kopieren und einfügen von einigen der code von ActionResult zu ActionResult, scheinbar macht mein code nicht sehr TROCKEN.

Gibt es eine bessere Möglichkeit der Vermeidung von wiederholten code wie diesem? Im moment habe ich einfach verschoben, die Erzeugung von Standard-Objekte das viewmodel muss in eine separate Methode und/oder der Konstruktor, aber es ist ein bisschen chaotisch, da ich zu generieren Sie alle Objekte, die ich brauchen könnte für die gesamte Steuerung. Was ich hatte gehofft, ich könnte tun wäre, um meinen zweiten Index-Aktion auf die erste Index-Aktion nur verwenden, als eine reguläre Methode. Ich habe versucht ein paar verschiedene Möglichkeiten, dies zu tun, obwohl, und kann nicht scheinen, um eine ActionResult in ein anderes ActionResult.

Irgendwelche Gedanken?

InformationsquelleAutor boolean | 2011-02-18

Schreibe einen Kommentar