powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ajax.BeginForm Обновить содержимое формы
17 сообщений из 17, страница 1 из 1
Ajax.BeginForm Обновить содержимое формы
    #38900992
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Недавно стал использовать Ajax.BeginForm в свое проекте asp.net mvc 5.
Вроде разобрался, но не совсем
Сделал кнопку, данные в бд отправляются все отлично, но статус(название кнопки) не магу поменять

Код: 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.
@using (Ajax.BeginForm("SubscribeCreateDelete", "ShoppingView", new AjaxOptions { UpdateTargetId = "btnStatus", InsertionMode = InsertionMode.Replace }))
                {      
                        @Html.Hidden("WhoSubscribe", us.GetUserIdByLogin(User.Identity.Name))
                        @Html.Hidden("OnSubscribe", (int)Model.UserId)
    <div id="btnStatus">
        @{
                    LookGid.Data.forSubscribes.workSubscribes wsb = new LookGid.Data.forSubscribes.workSubscribes();
                    bool checkSubs = wsb.CheckSubs(us.GetUserIdByLogin(User.Identity.Name), (int)Model.UserId);
        }
        @if (checkSubs == false)
        {
        <button type="submit" class="btn btn-primary btn-md" id="btnSubs"
                style="background-color: black; border-color: black; font-weight: bold; width: 140px; height: 25px; padding:0px;">
            Подписаться
        </button>
        }
        @if (checkSubs == true)
        {
            <button type="submit" class="btn btn-primary btn-md" id="btnSubs"
                    style="background-color: black; border-color: black; font-weight: bold; width: 140px; height: 25px; padding:0px;">
                Отписаться
            </button>
        }
    </div>
                }




Подскажите что делаю не так, как сделать чтобы работало?
UpdateTargetId = "btnStatus" - установлен, все как положено.
Может другой подход использовать к решению это задачи?
Спасибо.
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901092
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yardie,

А что делает SubscribeCreateDelete?
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901128
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
 bool checkSubs = wsb.CheckSubs(us.GetUserIdByLogin(User.Identity.Name), (int)Model.UserId);



вот тут проверка стутуса подписан или нет

SubscribeCreateDelete - меняет статус на противоположный


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public ActionResult SubscribeCreateDelete(int WhoSubscribe, int OnSubscribe)
        {
            workSubscribes wsb = new workSubscribes();
            UserHelper us = new UserHelper();
            workSubscribes sub = new workSubscribes();
            string btnStatus = "";

            int id = us.GetUserIdByLogin(User.Identity.Name);
            bool checkSubs = wsb.CheckSubs(id, bufSubscribe.WhoUserId);

            if (checkSubs == false)
            {
                sub.NewSubscribe(WhoSubscribe, OnSubscribe);
            }

            if (checkSubs == true)
            {
                sub.DelSubscribe(WhoSubscribe, OnSubscribe);
            }

            return View();
        }
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901137
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После того как я нажимаю кнопку type="submit" на форме, данные отправляются в SubscribeCreateDelete, там идет проверка статуса, "Подписаться" или "Отписаться". Если подписан - то отписывает, если отписан - то подписывают, значение обновляется в БД.

но вот не задача,
Код: html
1.
 <div id="btnStatus">

не обновляется...
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901140
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если аякс, то тогда уж PartialView
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901145
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕсли аякс, то тогда уж PartialView
+1
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901176
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал и на партиал

Код: html
1.
2.
3.
4.
5.
6.
7.
 @using (Ajax.BeginForm("SubscribeCreateDelete", "ShoppingView", new AjaxOptions { UpdateTargetId = "btnStatus", InsertionMode = InsertionMode.Replace }))
                {      
                        @Html.Hidden("WhoSubscribe", us.GetUserIdByLogin(User.Identity.Name))
                        @Html.Hidden("OnSubscribe", (int)Model.UserId)
 @Html.Partial("SubscribePartial")
    
                }



в самом Партиал
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<div id="btnStatus">
    @{
        LookGid.Data.forUsers.UserHelper us = new LookGid.Data.forUsers.UserHelper();
        LookGid.Data.forSubscribes.workSubscribes wsb = new LookGid.Data.forSubscribes.workSubscribes();
        bool checkSubs = wsb.CheckSubs(us.GetUserIdByLogin(User.Identity.Name), (int)Model.UserId);
    }
    @if (checkSubs == false)
    {
        <button type="submit" class="btn btn-primary btn-md" id="btnSubs"
                style="background-color: black; border-color: black; font-weight: bold; width: 140px; height: 25px; padding:0px;">
            Подписаться
        </button>
    }
    @if (checkSubs == true)
    {
        <button type="submit" class="btn btn-primary btn-md" id="btnSubs"
                style="background-color: black; border-color: black; font-weight: bold; width: 140px; height: 25px; padding:0px;">
            Отписаться
        </button>
    }
</div>



Код: c#
1.
2.
3.
4.
5.
public PartialViewResult SubscribePartial()
        {
            return PartialView();

        }
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901182
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысл от партиал не меняется, мне кажется...

Мне просто нужно каким-то образом менять название кнопки "Отписаться" на "Подписаться" или на оборот...

У меня не обновляется в партиале
Код: html
1.
<div id="btnStatus">
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901236
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А js-скрипты поддержки MS-аякса в страницу загружены?
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901250
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901254
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это так, к слову
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <div id="btnStatus">
        @{
                    LookGid.Data.forSubscribes.workSubscribes wsb = new LookGid.Data.forSubscribes.workSubscribes();
                    bool checkSubs = wsb.CheckSubs(us.GetUserIdByLogin(User.Identity.Name), (int)Model.UserId);
        }
        <button type="submit" class="btn btn-primary btn-md" id="btnSubs"
                style="background-color: black; border-color: black; font-weight: bold; width: 140px; height: 25px; padding:0px;">
            @(checkSubs ? "Отписаться" : "Подписаться")
        </button>
        }
    </div>

...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901266
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в веб-конфиге unobtrusive-ajax включен?
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901290
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Да включен:
<add key="UnobtrusiveJavaScriptEnabled" value="true" />


по поводу
Код: html
1.
@(checkSubs ? "Отписаться" : "Подписаться")

спб)


не хочет почему-то работать и все тут...

я уже делал когда div - находился не в форме то работало, правда другой пример.
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901299
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может обновляется, только надпись на кнопке неверна (из-за ошибки в логике)?
Попробуйте просто фигню написать. Или посмотреть отладчиком браузера, что там от сервера реально приходит
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901301
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yardie,

Какая версия JQuery?
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901304
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yardie,

Javascript ошибки вылетают какие?
...
Рейтинг: 0 / 0
Ajax.BeginForm Обновить содержимое формы
    #38901330
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ура, заработало.
во первых у меня не тот метод принимал данные с формы, нужно было их сразу кидать в Партиал
во вторых ошибка с переменной, сейчас исправляю

Спасибо большое, очень помогли, бывает вот так запаришься и не видишь очевидных вещей)))
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ajax.BeginForm Обновить содержимое формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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