Domanda

Sono molto nuovo per il mondo AJAX e JavaScript e sto cercando di attuare Scott esempio di Hanselman del modulo di presentazione per aggiornare parte di una pagina. Ho copiato il suo esempio quasi parola per parola e io non riesco a farlo funzionare. Perché quando clicco sul pulsante di invio l'azione di controllo è chiamato con successo, ma il risultato è visualizzato nel browser come una nuova pagina, invece di aggiornare solo l'arco che ho specificato nella forma Ajax.

Ecco il mio codice della vista:

<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>

E la mia azione di controllo:

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

E ho incluso le seguenti righe nella pagina master

<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> 

Ma tutto sembra fare è chiamare l'azione e rendere il risultato come una nuova pagina, invece di aggiornare l'arco bersaglio. Qui ci sono alcuni piccoli screenshot per illustrare ciò che sta accadendo.

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

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

Tutte le idee?

È stato utile?

Soluzione

Sono disponibili le javascript includere nella vostra pagina master in ordine errato. Riordinare in modo che MicrosoftAjax.js è incluso primo dei tre e funzionerà.

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

Altri suggerimenti

Basta gettare alcune idee là fuori ...

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

La vostra azione di controllo è in una classe definita in questo modo?

public class MyController : Controller

A quanto pare il nome della classe deve finire con il controller di parola.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top