视图中的按钮事件:
var target = '@Url.Action("Login", "Home")';
$.post(target, { UserName: $('#txtEmail').val(), userType: $('#selection').val(),
Password: $('#txtPassword').val() });
并且这是控制器Action方法。该控制器位于该区域内。 我正在从另一个控制器操作方法调用此控制器。
[HttpPost]
public ActionResult Login(string Username, string userType, string password)
{
HealthCareDataContext dc = null;
try
{
dc = new HealthCareDataContext();
var usr = (from obj in dc.tblAdmins
where obj.Username == Username.Trim()
&& obj.Status == true
select obj).ToList();
if (usr.Count > 0)
{
FormsAuthentication.Authenticate(Username, password); //Redirect login page.
FormsAuthentication.RedirectFromLoginPage(Username.Trim(), false);
return RedirectToAction("Index", "Admin", new { area1 = "Secure", area2 = "Admin" });
}
else
{
return View();
}
}
catch (Exception ex)
{
return View();
}
finally
{
dc = null;
}
}
调用此Action方法但不返回视图。但是当我手动浏览URL时,它会返回视图。
我在调用此操作时出错了。
答案 0 :(得分:1)
$.post(target, { UserName: $('#txtEmail').val(), userType: $('#selection').val(),
Password: $('#txtPassword').val() }, function(result){
//Now check your result
});
我仍然怀疑你必须这样做,因为你在登录中使用redirectoaction会产生问题。
如果你想返回,那么尝试像这样的纯粹的ajax调用。
$.ajax({
type: 'POST',
url: target,
data: $.param({ UserName: $('#txtEmail').val(), userType: $('#selection').val(),
Password: $('#txtPassword').val() }) ,
success: function (result) {
alert(result);
},
error: function (result) {
alert('Error');
}
});