Question

Je suis très nouveau dans le monde AJAX et Javascript et je suis en train de mettre en œuvre Scott exemple de soumission de formulaire de Hanselman mettre à jour une partie d'une page. Je l'ai copié son exemple, semblent presque mot pour mot et je ne peux pas pour le faire fonctionner. Lorsque je clique sur le bouton Envoyer l'action du contrôleur est appelé avec succès, mais le résultat est rendu dans le navigateur comme une nouvelle page, au lieu de juste mettre à jour la durée que je spécifié sous la forme Ajax.

Voici mon code de la vue:

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

Et mon action de contrôleur:

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

Et j'ai inclus les lignes suivantes dans la page principale

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

Mais tout cela semble faire est d'appeler l'action et rendre le résultat comme une nouvelle page, au lieu de mettre à jour la durée cible. Voici quelques petites captures d'écran pour illustrer ce qui se passe.

écran 1 http://martindoms.com/scr1.JPG

écran 2 http://martindoms.com/scr2.JPG

Toutes les idées?

Était-ce utile?

La solution

Vous avez le javascript inclure dans votre page maître dans le mauvais ordre. Réorganiser de sorte que MicrosoftAjax.js est inclus première des trois et il fonctionnera.

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

Autres conseils

Il suffit de jeter quelques idées là-bas ...

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

Votre action du contrôleur est dans une classe définie comme ceci?

public class MyController : Controller

Apparemment, le nom de la classe doit se terminer par le contrôleur de mot.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top