C# 注册失败后打开模式
我在控制器中为寄存器设置了此方法C# 注册失败后打开模式,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,我在控制器中为寄存器设置了此方法 [HttpPost] public ActionResult Register(RegisterViewModel register) { if (this.IsCaptchaValid("Captcha is not valid")) { if (ModelState.IsValid) { if (!db.Users.Any(u
[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");
}
这是我用razor写的剧本
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",} ))
我用mymodal名称在modal中显示registerpartialview,我想在messagemodal中显示注册页面的结果(成功与否)?
问题是,您没有调用函数registeredsucces 我认为,这里发生的是执行函数Rehister(),但不必执行。Ajax.BeginForm会自行处理,因此使用
OnSuccess=“registeredsucces”
只需使用如下代码:
var RegisteredSuccess = function()
{
...
}