Przekazanie wartości z kontrolera do funkcji JS?

0

Cześć, przedstawię najpierw kod :

Metoda z Kontrolera Account

 public ActionResult Registration(string email,string userName, string password)
        {
            ViewBag.Validation = "";
            bool isEmailExist= repository.IsEmailExistInDB(email);
            bool isLoginExist = repository.IsLoginExistInDB(userName);
            if (isEmailExist)
            {
                ViewBag.Validation = "emailExist";
            }
            if (isLoginExist)
            {
                ViewBag.Validation = "loginExist";
            }
            
            if(!isEmailExist && !isLoginExist)
            {
                User user = new User();
                user.Login = userName;
                user.Password = password;
                user.AdressMail = email;
                user.UserID = repository.ReturnNewUserID();
                user.ActivationLink = Guid.NewGuid().ToString();
                user.IsActivated = false;
                //repository.AddUser(user);
            }
           
            return View();
        }

Oraz widok :


@{
    ViewBag.Title = "Index";
    Layout = null;
}

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<link href="~/Content/bootstrap.min.css" rel="stylesheet" />
<script src="~/Scripts/bootstrap.min.js"></script>
<div class="container" style="margin-top:15%">//To jest zwykle okno
    <div class="row">
            </div>
            <div class="form-group">
                <a style="float:left">Zapomniałeś hasło? </a><a style="float:right; cursor:pointer" onclick="SignUp()">Zarejestruj się</a>
                
            </div>
        </div>
    </div>
</div>

@*Modalne okno rejestracji*@
<div class="modal fade" id="ShowModal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <a href="#" class="close" data-dismiss="modal">&times;</a>
                <h4>System rejestracji</h4>
            </div>
            <div class="modal-body">
                <form id="Registration">
                    <div id="loginExist">
                        <div class="alert alert-danger">
                            <span class="glyphicon glyphicon-remove"></span><strong>Podany login istnieje już w DB</strong>
                        </div>
                    </div>
                    <div id="emailIsExist">
                        <div class="alert alert-danger">
                            <span class="glyphicon glyphicon-remove"></span><strong>Podany email istnieje już w DB</strong>
                        </div>
                    </div>
                    <div id="registrationOK">
                        <div class="alert alert-success">
                            <span class="glyphicon glyphicon-remove"></span><strong>Na podany adres mail został wysłany kod aktywacyjny</strong>
                        </div>
                    </div>
                    <div class=" form-group">
                        <div class="input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                            <input class="form-control" type="text" name="userName" placeholder="Login" id="RegistartionLogin" />

                        </div>
                    </div>
                    <div class=" form-group">
                        <div class="input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span>
                            <input class="form-control" type="email" name="email" placeholder="Email" id="RegistrationEmail" />
                        </div>
                    </div>
                    <div class=" form-group">
                        <div class="input-group">
                            <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                            <input class="form-control" type="password" name="password" placeholder="Hasło" id="RegistrationPassowrd" />
                            
                        </div>
                    </div>
                </form>
                <div class="form-group">
                    <button class="btn btn-info form-control" type="submit" onclick="SaveForm()"><i class="glyphicon glyphicon-ok-circle">  Rejestruj</i> </button>
                </div>


            </div>
        </div>
    </div>

</div>


<script>
    function SignUp() {
        $("#ShowModal").modal();


    };
   
    function SaveForm() {
        var data = $("#Registration").serialize();
        var element = $(this);
        var email = element.attr("Email");
        var [email protected];
        $.ajax({
            type: "post",
            data: data,
            url: "/Account/Registration",
            success: function (result) { }
        });
    }
</script>

Przy "Zarejestruj się" otwieram okno modalne za pomocą funkcji "SignUp". W tym oknie użytkownik uzupełnia pola login, hasło oraz adres mail. Następnie w oknie modalnym istnieje akcja "Rejestruj" która wyzwala funkcję "SaveForm" a ta następnie wyzwala metodę "Registration" w kontrolerze. W danej metodzie sprawdzam, czy dany login oraz adres mail zostały już użyte - jeśli nie to ok, następuje rejestracja użytkownik zostanie przeniesiony na odpowiednią stronę. Lecz w przypadku gdy adres mail bądź login jest już w bazie chciałbym w jakiś sposób wyświetlić informację o błędzie. Jeśli walidacja nie przeszła - to chcałbym wysłać "jakąś" informację do okna modalnego, by przykładowo wyświetlił status z informacją (statusy przygotowałem jako id="loginExist", id="emailExist") i chciałbym to osiągnąć "manerwując" widocznością tych statusów. Więc, potrzebuje w jakiś sposób przesłać wiadomość z metody kontrolera do JS który po wykonaniu akcji "Rejestruj" przekazywałbym odpowiedni status do okna modalnego.

1
<script>
var blabla = '@trolol'
</script>

ale takie podejście szybko się mści :D

i lepiej zrobić to wysyłając requesty, a nie submitować formy i zwracać widoki.

btw IsSomethingExistInDB wtf??

0

Okej, dzięki za pomoc, z tymi requestami to będzie dobry pomysł. Nie do końca rozumiem o co chodzi z "IsSomethingExistInDB "?

1 użytkowników online, w tym zalogowanych: 0, gości: 1