2016-04-22 1 views
4

Ich habe eine Seite, die eine andere Teilansicht aufruft. Die Seite wird ordnungsgemäß geladen. Wenn jedoch ein Überprüfungsfehler auftritt, wird die post-Methode möglicherweise mehrmals aufgerufen.MVC Render Aktion auf Post

Der Code, der das Problem verursacht ist hier:

<div> 
    @{Html.RenderAction("ViewUploadedDocs", "TrackingHome", new { number = @Model.Id.ToString() });} 
</div> 

Dies sollte die folgende Methode in der Steuerung aufrufen.

public ActionResult ViewUploadedDocs(string number) 
    { 
     return PartialView(); 
    } 

Es ist nicht mit [HttpGet] oder [HttpPost] dekoriert. Die Methode, die immer aufgerufen wird, ist unterhalb der Post-Methode der Seite.

[HttpPost] 
    [MultipleButton(Name = "action", Argument = "Save")] 
    public ActionResult Edit(EditScreenModelValidation model) 
    { 
     if (ModelState.IsValid) 
     { 
      return RedirectToAction("UserWorkflows", "Home", new { Area = "Workflow" }); 
     } 
     return View("Edit", model); 
    } 

Ich habe auf Stackoverflow lesen, wo die Menschen haben die Seite der post-Methode aufrufen, die sie zu bekommen versuchen, aber mir ist die post-Methode meiner Hauptseite aufrufen und nicht die Seite, die ich zu bekommen versuche. Wenn ich die renderAction-Zeile auf meiner Hauptseite entferne, funktioniert die Seite korrekt und die Aktion ruft die Seite Bearbeiten nicht auf.

+5

Es gibt nicht genug Informationen in der Frage, um dies zu debuggen. – Liam

+1

Welche anderen Informationen möchten Sie sehen? – Nate

+2

Ich bin mir nicht sicher .... und das ist ein Problem. Dies fühlt sich an wie etwas, das nur Sie und die Leute mit vollem Zugriff auf Ihren Code lösen können. Dies ist wahrscheinlich, warum Sie wenige Ansichten, keine Antworten und keine Kommentare (abgesehen von mir) haben. Sorry – Liam

Antwort

0

RenderAction ruft die angegebene untergeordnete Aktionsmethode auf und rendert das Ergebnis in der übergeordneten Ansicht (es ruft die Aktion auf). Sie sollten RenderPartial verwenden, wenn Sie das aktuelle ViewDataDictionary-Objekt oder Partial übergeben müssen, wenn Sie die angegebene Ansicht je nach dem, was Sie erreichen möchten, als HTML-codierte Zeichenfolge darstellen möchten.

Verwandte Themen