Come faccio ad avere form Ajax osservazioni di lavorare in ASP.net MVC?
-
11-09-2019 - |
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?
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.