0

Ich habe ein Formular, das mehrmals auf mehreren Seiten auftritt. Ich möchte dieses Formular in eine Teilansicht stellen und Datenannotationen verwenden, um es zu validieren.MVC - Mehrere Formulare auf der gleichen Seite in Teilansicht mit Datenannotationen

Dies ist, was ich bisher habe:

Controller:

public ActionResult Form() 
{ 
    return PartialView("_Form", new FormInput()); 
} 


[HttpPost] 
public ActionResult Form(FormInput model) 
{ 
    if (!ModelState.IsValid) 
    { 
     return PartialView("_Form", model); 
    } 

    return PartialView("Form", new FormInput()); 
} 

Ausblick:

<div> 
    @Html.Action("Form", "Forms") 
</div> 
<div> 
    @Html.Action("Form", "Forms")  
</div> 

Teilansicht:

@using (Html.BeginForm("Form", "Forms")) 
{ 
    <div> 
     @Html.TextBoxFor(x => x.Name) 
     @Html.ValidationMessageFor(x => x.Name) 
    </div> 
    <div> 
     @Html.TextBoxFor(x => x.Email) 
     @Html.ValidationMessageFor(x => x.Email) 
    </div> 
    <input type="submit"/> 
} 

In diesem Code, um die Steuerung wieder nur die Paritalansicht und nicht die Hauptansicht. Was mache ich falsch?

Ist die einzige Lösung, um dies über ajax.beginform zu lösen? Ich würde wirklich gerne den Standard Post benutzen.

Vielen Dank im Voraus!

+0

Was bedeutet die Aktion-Methode, die Ihre Hauptansicht zurückkehrt aussehen? – dotnetesse

+0

Hmm .. ok, nun sieht der Controller anders aus, weil das Formular an verschiedenen Stellen auf der Seite erscheint. Einige geben nur eine Ansicht und einige eine Ansicht mit Modellen zurück. – user943369

Antwort

0

Sie müssen eine "Ansicht" in Ihrer Controller-Methode abrufen. Dann

, auf Sie sehen Seite machen die Teilansichten wie:

@Html.Partial("_Form", new FormInput()) 
Verwandte Themen