Frage

Ich bin sehr neu in der AJAX und Javascript Welt und ich versuche Scott zu implementieren Hanselman Beispiel Formularübermittlung Teil einer Seite zu aktualisieren. Ich habe sein Beispiel fast Wort für Wort kopiert und ich kann nicht scheinen, um es Arbeit zu bekommen. Wenn ich auf den Absenden-Button die Controller-Aktion erfolgreich aufgerufen wird, aber das Ergebnis wird im Browser als neue Seite gerendert, anstatt nur die Spanne der Aktualisierung, die ich in der Ajax Form angegeben.

Hier ist meine Ansicht Code:

<asp:Content ID="indexHead" ContentPlaceHolderID="head" runat="server">
    <title>Home Page</title>
</asp:Content>

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">

    <% using (Ajax.BeginForm("TestAction", new AjaxOptions { UpdateTargetId = "target" }))
       { %>

        <%= Html.TextBox("TextBox")%>
        <input type="submit" value="Submit" />
        <span id="target" />

    <% } %>

</asp:Content>

Und meine Controller-Aktion:

    public string TestAction(string TextBox)
    {
        return TextBox;
    }

Und ich habe die folgenden Zeilen in der Masterseite enthält

<script src="../../Scripts/MicrosoftMvcAjax.debug.js"type="text/javascript"></script>  
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> 

Aber es scheint zu tun, ist die Aktion aufrufen und das Ergebnis als eine neue Seite machen, anstatt die Zielspanne zu aktualisieren. Hier sind einige kleine Screenshots zu veranschaulichen, was passiert.

Screenshot 1 http://martindoms.com/scr1.JPG

Screenshot 2 http://martindoms.com/scr2.JPG

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie haben die Javascript in Ihrem Master-Seite in der falschen Reihenfolge enthalten. Der Neuordnungs so dass MicrosoftAjax.js ist im Preis inbegriffen erste der drei und es wird funktionieren.

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>

Andere Tipps

Werfen Sie einfach ein paar Ideen da draußen ...

http://www.asp.net/learn/MVC /tutorial-33-cs.aspx

Ihre Controller-Aktion ist in einer Klasse definiert, wie so?

public class MyController : Controller

Anscheinend ist der Name der Klasse hat mit dem Wort Controller zu beenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top