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">×</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.