Как я могу получить представления формы Ajax для работы в ASP.net MVC? - PullRequest
2 голосов
/ 18 апреля 2009

Я очень новичок в мире AJAX и Javascript и пытаюсь реализовать пример отправки формы Скоттом Хансельманом для обновления части страницы. Я почти дословно скопировал его пример и не могу заставить его работать. Когда я нажимаю кнопку «Отправить», действие контроллера вызывается успешно, но результат отображается в браузере как новая страница, а не просто обновляет диапазон, указанный в форме Ajax.

Вот мой код просмотра:

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

И мое действие контроллера:

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

И я включил следующие строки в главную страницу

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

Но все, что он делает, это вызывает действие и отображает результат в виде новой страницы вместо обновления целевого диапазона. Вот несколько небольших скриншотов, чтобы проиллюстрировать, что происходит.

Скриншот 1 http://martindoms.com/scr1.JPG

Скриншот 2 http://martindoms.com/scr2.JPG

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 18 апреля 2009

Javascript включен в вашу главную страницу в неправильном порядке. Измените порядок, чтобы файл MicrosoftAjax.js был включен первым из трех, и он будет работать.

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
0 голосов
/ 18 апреля 2009

Просто подбрасываю идеи ...

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

Ваше действие контроллера относится к классу, определенному так?

public class MyController : Controller

Очевидно, имя класса должно заканчиваться словом controller.

...