Nano Hash - криптовалюты, майнинг, программирование

вернуть частичное представление после httppost asp.net mvc

Я создаю веб-приложение в asp.net mvc

У меня есть частичное представление для сброса пароля, которое открывается внутри модального окна начальной загрузки,

теперь на HttpPost у меня есть условие if, которое выглядит ниже

if (string.IsNullOrEmpty(model.NewPassword))
{
    TempData["PMessage"] = CustomHelper.Translate("Please Enter new Password");
    return PartialView(model);
}

но мой основной URL-адрес меняется на этот частичный вид, как показано ниже

http://localhost:8080/User/ResetPassword

здесь ResetPassword имя моего частичного просмотра

мой частичный вид выглядит следующим образом

@(Html.BeginForm("ResetPassword", "User", FormMethod.Post))
{
<div class="modal-dialog modal-sm">
    <!-- Modal data-->
</div>
}

мой полный метод публикации

[HttpPost]

public ActionResult ResetPassword(ResetPasswordModel model)
{
    if (string.IsNullOrEmpty(model.NewPassword))
    {
        TempData["PMessage"] = "Please Enter new Password";
        return PartialView(model);
    }
    //if success
    return RedirectToAction("Index");
}

как я могу предотвратить это, я просто хочу загрузить модальную, а не всю страницу,

какие тут могут быть исправления?

или Должен ли я пройти проверку на стороне клиента?

Поток страницы в деталях

вот так выглядит моя страница

Моя страница

если пользователь нажимает кнопку сброса пароля, появляется модальное окно начальной загрузки, показанное ниже.

Мой модальный

без ввода каких-либо данных, если пользователь нажимает «ОК», был вызван метод публикации, и страница перенаправляется на resetpassword.cshtml, поскольку я возвращаюсь, как показано ниже.

return PartialView(model);

что мне нужно сделать, если я хочу только обновить модальное/частичное представление при проверке на контроллере


  • опять обновил.. 21.05.2019
  • обновил мой вопрос, надеюсь, это поможет вам понять, что я пытаюсь сделать 21.05.2019
  • Я думаю, вам следует запретить отправку формы сброса. Вы можете собирать данные формы и публиковать их с помощью запроса AJAX. После того, как запрос будет выполнен, вы можете либо обновить модальное окно, используя содержимое частичного просмотра, либо перенаправить на индексную страницу. 21.05.2019

Ответы:


1

Вы делаете обычный HTTP-запрос, который используется для обработки обычных вызовов браузера (например, отправки форм) и возврата полных HTML-страниц клиенту.

В вашем случае вам нужно сделать запрос ajax для обработки метода публикации ResetPassword, чтобы избежать перенаправления.

<!-- modal placeholder-->
<div id='myModal' class='modal fade in'>
    <div class="modal-dialog">
        <div class="modal-content">
            <div id='myModalContent'></div>
        </div>
    </div>
</div>

этот URL-адрес возвращает форму сброса и загружает ее в модальное содержимое.

<a href="@Url.Action("Reset", "Account", new { class = "resetpassword" })" ></a>


$(function () {
            $(document).on("click", "a.resetpassword", function (e) {
                $('#myModalContent').load(this.href, function () {
                    $('#myModal').modal({
                        /*backdrop: 'static',*/
                        keyboard: true
                    }, 'show');
                    bindForm(this);
                });
                return false;
            });
        });

        function bindForm(dialog) {
            $('form', dialog).submit(function (e) {
                e.preventDefault();
                if ($('#resetFormId').valid()) {
                    $.ajax({
                        url: this.action,
                        type: this.method,
                        data: $(this).serialize(),
                        success: function (result) {
                            if (result.success) {
                                $('#myModal').modal('hide');
                            } else {
                                $('#myModalContent').html(result);
                                bindForm(dialog);
                            }
                        }
                    });
                }
                return false;
            });
        }
21.05.2019
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..