Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку. / 11 сообщений из 11, страница 1 из 1
20.03.2013, 13:48
    #38191356
Gena928
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
День добрый,

Смастерил простенькую страничку на MVC3
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<!DOCTYPE html>

<html>
<head runat="server">
    <script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
    <title>TestResult</title>
</head>
<body>

    <% using (Ajax.BeginForm("UpdateRow", "Delivery",
                new AjaxOptions
                {
                    UpdateTargetId = "DivUpdateMe", 
                    HttpMethod="Post", 
                    InsertionMode = InsertionMode.Replace})) { %>
       
        <button type="submit" value="submit result">Button one</button>

    <%} %>

    

    <%= Ajax.ActionLink("Link one", "UpdateRow", new AjaxOptions {UpdateTargetId = "DivUpdateMe", HttpMethod = "HttpPost"})%>

    

    

                
    <%= Ajax.ActionLink("Link two", "UpdateRow",
                                new AjaxOptions() { 
                                    HttpMethod = "Post", 
                                    UpdateTargetId =
                                    "DivUpdateMe", 
                                    InsertionMode = InsertionMode.Replace })%>      
    
    

    


    <div id="DivUpdateMe" style="border:1px solid gray; ">
        TEXT TO BE REPLACED!
    </div>

</body>

</html>



код контроллера, который возвращает результат:
Код: c#
1.
2.
3.
4.
5.
        public ActionResult UpdateRow()
        {
            
            return Content("<span>some content</span>", "text/html");
        }



Проблема в том, что при нажатии на любую кнопку или ссылку результат отображается в новом окне, а мне надо обновить div на этой страничке.
Что не так подскажите пожалуйста.
...
Рейтинг: 0 / 0
20.03.2013, 13:52
    #38191375
egorius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
Gena928,
Могу ошибаться ибо сам еще чертовски зелен в этом вопросе, но мне кажется что <div> который обновляется, должен быть внутри формы. Иными словами, закрывающую "}" надо ставить после того самого <div>
...
Рейтинг: 0 / 0
20.03.2013, 13:56
    #38191387
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
Gena928,

..а в разметке div-a не должно ли быть runat=server ?
...
Рейтинг: 0 / 0
20.03.2013, 14:07
    #38191409
Gena928
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
carrotik, egorius,

спасибо за комментарии, но ни один способ не сработал (((
Тоже самое - выкидывает на другую страничку.
...
Рейтинг: 0 / 0
20.03.2013, 14:22
    #38191428
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
Gena928,
было что то похожее, вдруг на более поздней версии сайт стал выдавать такие кренделя..
...
Рейтинг: 0 / 0
20.03.2013, 14:23
    #38191430
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
было что то похожее, вдруг на более поздней версии сайт стал выдавать такие кренделя..
плюнул на все, и переписал $('#myDiv').load(......
и перестал этой фитчей пользоваться..
...
Рейтинг: 0 / 0
20.03.2013, 14:31
    #38191442
Gena928
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
Где-то в степибыло что то похожее, вдруг на более поздней версии сайт стал выдавать такие кренделя..
плюнул на все, и переписал $('#myDiv').load(......
и перестал этой фитчей пользоваться..

В смысле? Обновлять содержимое div при загрузке?


Я уже з$#@я это дело отлаживать. Весь интернет перерыл.
Примеры, вроде, одинаковые, а не работает....
...
Рейтинг: 0 / 0
20.03.2013, 17:19
    #38191811
KVVK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
Gena928, Есть подозрение, что путь к js не правильный. Нужно:
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>

Я пользуюсь Razor, там принято так:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
...
Рейтинг: 0 / 0
21.03.2013, 01:20
    #38192411
Gena928
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
KVVK,

Попробовал. Тоже самое. Видимо где-то сидит тупая и примитивная ошибка. Потом найду.

Зы: я победил. Меня спас JSon. Отправляю данные на сервер, обновляю и получаю результат. Надо было сразу так делать )).
...
Рейтинг: 0 / 0
29.03.2013, 23:10
    #38205134
Gena928
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
А вот и правильный ответ.

Для корректной работы на страничку надо добавлять ссылку на jquery.unobtrusive-ajax.js.
При этом надо заглянуть внутрь, и посмотреть какую версию JQuery эта штука может использовать. Я поставил 1.9.1, - и все заглючило.

jquery.unobtrusive-ajax.js хочет версию JQuery 1.4.1. (с 1.5.1 тоже пошло нормально).
...
Рейтинг: 0 / 0
08.04.2013, 20:40
    #38217929
e-alex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку.
Gena928,

В jquery.unobtrusive-ajax используется метод live, который не поддерживается в jquery с версии 1.9 и выше.
Используйте более раннюю версию jquery, или методы миграции.
http://api.jquery.com/on
http://api.jquery.com/bind
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ajax.ActionLink / Ajax.BeginForm не обновляет DIV, а выкидывает на новую страничку. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]