открыть модал после неудачной регистрации - PullRequest
0 голосов
/ 03 июня 2018

У меня есть этот метод в контроллере для регистра

  [HttpPost]
    public ActionResult Register(RegisterViewModel register)
    {
        if (this.IsCaptchaValid("Captcha is not valid"))
        {

            if (ModelState.IsValid)
            {
                if (!db.Users.Any(u => u.Email == register.Email.Trim().ToLower()))
                {

                    Users user = new Users()
                    {
                        ...
                    };


                    db.Users.Add(user);
                    db.SaveChanges();

                }
                else
                {
                    ViewBag.ErrMessage = "Error: Email Already Exist";

                }

            }
            else { ViewBag.ErrMessage = "Error: ModelState Is Not Valid"; }
        }
        else
        {

            ViewBag.ErrMessage = "Error: captcha is not valid.";
            return PartialView(register);
        }


        return RedirectToAction("Index", "Home");
    }

, и это мой скрипт в бритве

 function Register() {
        $.ajax({
            type: "Get",
            url: "/Account/Register",
            contentType: "application/json;charset=utf-8",
            content: "json",
            success: function (data) {
                $('#myModal').modal('show');
                $('#myModalLabel').html('Register');
                $('#bodymodal').html(data);
            }
        });
    };
    function RegisteredSuccess(data) {
        $('#myModal').modal('hide');
        $('#MessageModal').modal('show');           
        $('#Messagebodymodal').html(data);
    }

, и я использую этот код:

@using (Ajax.BeginForm("Register","Account", FormMethod.Post,new AjaxOptions(){InsertionMode=InsertionMode.Replace,HttpMethod="post", UpdateTargetId="div", OnSuccess= "RegisteredSuccess",} ))

Я показываю registerpartialview в модальном режиме с именем mymodal и хочу показать результат страницы регистрации в messagemodal (успех или нет)?что такое sulotion?

1 Ответ

0 голосов
/ 04 июня 2018

Проблема в том, что вы не вызываете функцию RegisteredSuccess.

Я думаю, что здесь происходит, что вы выполняете свою функцию Rehister (), но вам это не нужно.Ajax.BeginForm обрабатывает это самостоятельно, поэтому с OnSuccess= "RegisteredSuccess" вам просто нужно использовать код, подобный следующему:

var RegisteredSuccess = function()
{
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...