Übermitteln von Daten aus partielle view controller MVC
Habe ich eine Liste der Beschäftigung Datensätze, Sie können auch hinzufügen einer Beschäftigung Datensatz von der gleichen Seite durch Verwendung eines partiellen view.
Heres Beschäftigung.cshtml, hat eine teilweise Ansicht für die Einträge der Liste und eine Teilansicht zum hinzufügen eines neuen Datensatzes erscheint in einem modalen pop-up.
<h2>Employment Records</h2>
@{Html.RenderPartial("_employmentlist", Model);}
<p>
<a href="#regModal" class="btn btn_b" rel="fancyReg">Add New Record</a>
</p>
<div style="display:none">
<div id="regModal">
@{Html.RenderPartial("_AddEmployment", new ViewModelEmploymentRecord());}
</div>
</div>
Hier ist die Teilansicht _AddEmployment.cshtml
@using (Html.BeginForm("AddEmployment, Application"))
{
@Html.ValidationSummary(true)
<div class="formEl_a">
<fieldset>
<legend></legend>
<div class="sepH_b">
<div class="editor-label">
@Html.LabelFor(model => model.employerName)
</div>
etc....etc....
</fieldset>
</div>
<p>
<input type="submit" class="btn btn_d" value="Add New Record" />
</p>
}
und hier ist meine Bewerbung controller:
[HttpPost]
public ActionResult AddEmployment(ViewModelEmploymentRecord model)
{
try
{
if (ModelState.IsValid)
{
Add Data.....
}
}
catch
{
}
return View(model);
}
Beim kompilieren des folgenden html-Code wird generiert für die form:
<form action="/Application/Employment?Length=26" method="post">
Bringt es in eine Zeichenfolge mit der Länge? und ist die Anrufung des Beschäftigungs-controller statt?
Hoffe, dass alles klar ist....
FRAGE: wenn ich auf den submit-button aus der partiellen Sicht geht es nicht um den controller angegeben, um die Daten hinzuzufügen. Kann jemand sehen, wo im gehend falsch?
FRAGE ZWEI:, Wenn ich diese arbeiten, ich möchte ein update der Beschäftigungs-Liste mit dem neuen Eintrag....werde ich über dieses der richtige Weg? Irgendwelche Tipps dankbar.
1) An der Stelle der Verwendung eines magischen Zeichenfolgen, würde ich aufhören mit
Html.BeginForm
und schreiben Sie einfach die <form>
tag selber manuell. Versuchen Sie, die erste und sehen, wenn Sie post in Ihrem action-Methode. 2) Vorausgesetzt, du meinst die überprüfung der ModelState.IsValid
Flagge? Das ist nur wirklich nützlich, wenn Sie mit den DataAnnotations.Wenn ich kompilieren der Seite das form-tag generiert ok <form action="/Application/Beschäftigung?Länge=26" method="post">. Es scheint zu gehen, um den falschen controller allerdings, Beschäftigung anstelle von addEmployment?? Ich habe aktualisiert die main-post mit dieser info
InformationsquelleAutor Dez79 | 2012-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Antwort 1: Zuerst versuchen Sie dies und lassen Sie mich wissen, wenn das zuvor auf dem controller.
Antwort 2: ein update der Beschäftigungs-Liste, würde ich davon ausgehen, Sie würden das Modell speichern möchten, um Ihre Datenbank, dann haben Sie Ihre Beschäftigung Liste angezeigt auf der gleichen Seite oder eine andere Seite aufrufen die Daten aus der DB in die Liste oder Tabelle angezeigt werden.
Edit:
Es sieht aus, als ob Ihre form-Attribute werden nicht angewendet.
Für Ihre Beschäftigung.cshtml, ich persönlich glaube nicht, verwenden Sie { }, um meinen @Html-Anweisungen.
Sie müssen nicht das tun, was ich oben sagte, weil Sie Ihre Fehler tritt nur auf, wenn ich Schreibe es als
fehlt denen das schließende Anführungszeichen ist, was die Ursache für dein problem.
Es wird nicht lassen Sie mich fügen Sie die Formular-Methode....Ich bekomme folgende Fehlermeldung: ****Error " - System.Web.Mvc.HtmlHelper<ViewModels.ViewModelEmploymentRecord>' enthält keine definition für 'BeginForm' und die besten Erweiterung Methode überlast " - System.Web.Mvc.Html-Code.FormExtensions.BeginForm(System.Web.Mvc.HtmlHelper, string, string)' hat einige ungültige Argumente Views\Application_AddEmployment.cshtml ***
Bitte ändern Sie diesen code:
("AddEmployment, Application", FormMethod.Post)
:("AddEmployment", "Application", FormMethod.Post)
und Sie laufen nicht mehr in die Fehler-und sollte das Formular mit post an den richtigen controller. GrüßeARRRRRRRRGGGGHHH!! Natürlich! Vielen Dank für die Hilfe Jungs, schlagen die controller und sparen. Nun, in zu erhalten, um die Ansicht zu aktualisieren ohne postback!
InformationsquelleAutor John Sykor
jQuery-code:
Controller-Code
Mit diesen code können Sie post-Formular mit jquery und erhalten Antwort in jsonresult
InformationsquelleAutor Rakesh Jogani
haben Sie
@using (Html.BeginForm("AddEmployment, Application"))
was dieser versucht zu tun ist, rufen Sie eine Aktion namens"AddEmployment, Application"
ich denke, du meintest@using (Html.BeginForm("AddEmployment", "Application"))
Im gerade seein Ihr nicht das gleiche nach dem Lesen der anderen Antworten..danke!
Ich zeigte Ihr noch nicht geschlossenen Anführungszeichen, damit Ihr nur das Lesen als Handlung nicht als 2 Parameter action und controller
InformationsquelleAutor Manatherin