Controller-äquivalent von HttpContext.Aktuelle in ASP.NET MVC

Ich würde gerne Zugriff auf die aktuelle Ausführung-Controller, so dass ich verschieben kann die Rückgabe der entsprechenden ActionResult auf eine helper-Methode. Zu diesem Zweck, ich bin auf der Suche nach den Gegenwert von dem, was ich gedacht hätte wäre ControllerContext.Aktuell ist es aber nicht. Danke!

Edit zur Klarstellung: ich habe eine generische Formular-Steuerelement, das ist JavaScript-basiert ist, aber ich möchte noch hinzufügen, eine option, so dass es funktioniert mit noscript. Im moment ist meine Steuerung setzt das ViewData.Modell einer JSON-freundlich-Modelle.FormResponse<T>.

Diese FormReponse eingerichtet ist, mit dem status des post-und Fehlermeldungen erzeugt wurden, so möchte ich eine GetActionResult () - Methode, die nicht das script/noscript prüfen (eine versteckte form input) und entweder:

  1. Legt das Modell auf die JSONed FormResponse und gibt eine Ansicht () oder
  2. Serialisiert die FormResponse die Sitzung und gibt einen Redirect().

Da dies offensichtlich ändert sich der Rückgabewert und die ich nicht überprüfen wollen, mich jedes mal, muss ich anrufen Anzeigen oder leiten Sie aus dem FormResponse ist GetActionResult Methode, um dies als:

return formResponse.GetActionResult();

Weiß ich, mit einem mehr astronautical design dies könnte sogar die robusten, aber mehr als die noscript-option ist nicht eine wichtige Funktion in dem moment, ich muss nur um eine schnelle Lösung zu arbeiten, die nicht brechen andere Dinge.

Update #2

Den folgenden, implementiert in einer Klasse ActionResult, macht den job für mich. Dank CVertex!

public override void ExecuteResult(ControllerContext context)
    {
        if (CMSEnvironment.NoScript)
        {
            Oracle.Response.Redirect(Oracle.Request.UrlReferrer.ToString(), true);
        }

        context.Controller.ViewData.Model = _model.ToJSON();

        new ViewResult()
        {
            ViewName = Areas.Site.Helpers.SharedView.Service,
            ViewData = context.Controller.ViewData
        }.ExecuteResult(context);
    }
  • Wo wollen Sie diesen Zugang, deiner Meinung nach??
  • Was ist eine generische form der Kontrolle? Ist es ein ViewUserControl<T>?
InformationsquelleAutor tags2k | 2009-03-01
Schreibe einen Kommentar