MVC 4 Aktualisieren einer Ansicht mit einer controller-action
Ich bin neu in der MVC. Ich möchte in der Lage zu ändern ein button/divs/Textfelder text, wenn eine Ansicht die Schaltfläche geklickt wird. Ich fand ein tutorial online, das zeigte mir aber, wenn ich auf die Schaltfläche klicke, ich werde immer umgeleitet auf eine andere Seite. Diese Seite zeigt den text statt. Ich habe nicht berührt der Globale Standard.aspx
Ansicht
@using (Ajax.BeginForm("ExamineTextBox", new AjaxOptions { UpdateTargetId = "result" }))
{
@Html.TextBox("textBox1")
<input type="submit" value="Button" />
<span id="result" />
}
Controller
public string ExamineTextBox(string textBox1)
{
if (textBox1 != "Initial Data")
{
return "This text is MVC different from before!";
}
return String.Empty;
}
InformationsquelleAutor user1134179 | 2012-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, Sie haben enthalten die
jquery.unobtrusive-ajax.js
Skript zu Ihrer Seite.Wenn Sie die Standard-bundles (werfen Sie einen Blick auf
~/App_Start/BundleConfig.cs
- Sie werden sehen, einjqueryval
bundle definiert, die kombiniert und minimiert alle~/Scripts/jquery.unobtrusive*
und"~/Scripts/jquery.validate*"
- Dateien):und wenn nicht mithilfe von bundles, die Sie könnte auch nur dieses Skript individuell:
Es ist das Skript, das benötigt wird für
Ajax.*
Helfer zu arbeiten. Wie der name deutet es dezent AJAXifies. Es hängt davon ab, jQuery, so stellen Sie sicher, dass Sie haben, eine auch enthalten.Anmerkung: In ASP.NET controller-Aktionen zurückgeben sollte ActionResults, keine Zeichenfolgen:
Hier ist, wie Sie Ihre volle anzeigen-code Aussehen könnte:
und der controller:
Nein, Sie fehlen nicht, ein anderes script. Stellen Sie sicher, dass die Skripte existieren, die an der angegebenen Position. Auch Sie müssen umkehren, um =>
jquery
ersten. Wie ich bereits in meiner Antwortjquery.unobtrusive-ajax.js
hängtjquery
also, wenn Sie habe nicht enthalten die jquery bevor es nicht funktionieren.Die @Script rendert, werden alle entfernt. Ich legte die jquery über die jquery.unaufdringliche und Sie werden an der angegebenen Position. Wenn ich auf die Schaltfläche klicke, es tut sich nichts. Bevor wenn die .dezent war vor dem jquery geladen eine Seite mit den /Home/ExamineTextBox url ohne text auf der Seite
Hast du ändern Sie den text in das Textfeld? Denn in einer controller-action, die du überprüfen, ob der Wert unterscheidet sich von dem ersten Wert und Rendite nichts anderes.
Hahaha ich bin ein frustrierter Narr. Ich danke Ihnen sehr.
InformationsquelleAutor Darin Dimitrov