Die Weitergabe der Daten vom Controller zum View, zurück zum Controller zurück, um Anzeigen

Ich bin neu ASP.NET MVC. Nach der Arbeit mit traditionellen ASP.NET Modell für so lange, es dauert einige Zeit für mich, um zu verstehen, dieses Modell.

Gehe ich durch NerdDinner, um zu verstehen, wie die Dinge funktionieren.

So, ich habe ein Objekt, das übergeben werden muss, durch einige Ansichten. Ähnlich wie die Artikel NerdDinner Schritt 6: ViewData und ViewModel.

Ich behalte die Daten von Get zu Post für die erste Zeit, dann lege ich Sie in TempData und übergeben es an einer anderen Aktion (AnotherAction). Sobald ich meine Daten Bekomme ich nicht behalten, es auf die Post.

Hier ist mein code:

public class DinnerFormViewModel
{
    public Dinner Dinner { get; private set; }

    public DinnerFormViewModel(Dinner dinner)
    {
        Dinner = dinner;
    }
}

public class DinnersController : Controller
{
    public ActionResult Action()
    {
        Dinner dinner = new Dinner();
        return View(new DinnerFormViewModel(dinner));
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Action(Dinner dinner, FormCollection collection)
    {
        try
        {
            //Some code
            TempData["Dinner"] = dinner;
            return RedirectToAction("AnotherAction");
        }
        catch
        {
            return View();
        }
    }

    public ActionResult AnotherAction()
    {
        Dinner dinner = (Dinner)TempData["Dinner"]; //Got my dinner object
        return View(new DinnerFormViewModel(dinner));
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult AnotherAction(Dinner dinner, FormCollection collection)
    {
        //Lost my dinner object, dinner comes in as null
    }
}
InformationsquelleAutor Sai | 2009-11-28
Schreibe einen Kommentar