umbraco mvc-controller-Oberfläche, nicht mehr zurück können anzeigen von HttpPost Aktion

Überblick über das problem:

Habe ich einen Surface controller mit einer action, die aufgerufen wird, mit @Html.Action(...).

Den @Html.Aktion Aufruf erfolgt innerhalb einer Makro-Teilansicht und das makro enthalten ist, in den Inhalt einer Seite, die mit dem rich-text-editor.

(Ich bin neu hier also wenn ich dabei bin, über die Dinge der falsche Weg, dann lassen Sie es mich bitte wissen).

Die Oberfläche controller hat eine GET und eine POST-action, aber es ist die get-Aktion rief innerhalb der makro-teilweise.

Aktion zu erhalten macht fein, Sie keine Daten in das Formular führt zum erlöschen der Modell-Zustand (was ist das, was ich derzeit testen).

dem Absenden des Formulars (keine Daten eingegeben) bedeutet, dass ich in meinem BEITRAG handeln, ModelState.IsValid auf false gesetzt ist und CurrentUmbracoPage() zurückgegeben wird.

Alles in Ordnung... Keine Ausnahmen begegnet beim Debuggen...

Es ist an dieser Stelle, dass der text des Fehlers "Fehler beim laden des Partiellen View Skripts" auf der Seite angezeigt wird.

Alles was ich versuche zu tun, ist Rückkehr die gleiche Seite mit der Validierung der Nachrichten zeigt.

Details:

Umbraco v6.0.5

Den Controller, ich bin derzeit arbeiten, wird verwendet, um das Kennwort eines Benutzers zurückzusetzen. Ich habe auch einen login-conroller, der dieses Problem umgehen, indem mithilfe RedirectToCurrentUmbracoPage().

Zugriff auf die Seite, die das makro enthält, verwende ich die Adresse http://{testhost}/Reset-Passwort
der Fehler zurückgegebenen text lautet: Fehler beim laden des Partiellen View Skript (Datei: ~/Views/MacroPartials/ResetPassword.cshtml)

code in eine seperate Lösung und Ansichten, und bin-Verzeichnisse kopiert werden durch.
nuget-Paket UmbracoCMS.Gerüst verwendet wird.

- Controller-code:

public class ResetPasswordSurfaceController : SurfaceController {        
        [ChildActionOnly]
        [HttpGet]
        public ActionResult Reset(string token, string email) {
             //Validation Code Omited             
             var user = Membership.GetUser(username);
             return PartialView("Reset", new ResetPasswordSurfaceModel { UserID =     user.ProviderUserKey.AsInt() });
        }

        [HttpPost]
        public ActionResult PostReset(ResetPasswordSurfaceModel model) {
            if (ModelState.IsValid) { 
                 //Password reset code omited                 
                  return RedirectToCurrentUmbracoPage();
             }
            //works but only partial view content is rendered
            //return PartialView("Reset",model);         
            return CurrentUmbracoPage();
        }
    }

View - ~\Views\ResetPasswordSurface\Reset.cshtml:

@model UmbracoExt.Models.ResetPasswordSurfaceModel
@using (Html.BeginUmbracoForm("PostReset", "ResetPasswordSurface")) {
      @Html.EditorForModel() 
    <input type="submit" value="Submit" />
}

Makro-Teilansicht - ~\Views\MacroPartials\ResetPassword.cshtml:

@inherits Umbraco.Web.Macros.PartialViewMacroPage       
@Html.Action("Reset", "ResetPasswordSurface")

Jede Hilfe ist willkommen.

Edit:

Entfernen der [HttpGet] - Attribut der Zurücksetzen-Aktion hat gezeigt, dass nach der PostReset Aktion aufgerufen wird, die Reset-Aktion auch genannt wird.

Umbenennen PostReset Zurücksetzen und neu-hinzufügen des httpget-Attribut, um die ursprüngliche Aktion Reset Ergebnisse in der post-Aktion wird zweimal genannt.
das zweite mal aufgerufen wird, bewirkt, dass die Ausnahme:
Kann nur UmbracoPageResult in Zusammenhang mit einem Http-POST bei der Verwendung eines SurfaceController form

Ich habe die änderungen rückgängig gemacht, so bin ich wieder auf Reset ([HttpGet]) wird aufgerufen, nachdem die PostReset Aktion.

Also das problem steht immer noch. Wie kann ich dieses Problem umgehen?
Ich muss das Ergebnis aus der PostReset Aktion.

InformationsquelleAutor X-Dev | 2013-05-30
Schreibe einen Kommentar