我正在检查用户是否存在,然后如果存在,我将把他带到主页面。
我已经成功调用了主页面操作方法,但前视图没有改变。
这是我的AJAX请求:
$.ajax({
type: "GET",
url: "../../login/login_req",
dataType: "JSON",
data: {
_name: inf.user_name,
_pass: inf.pass,
_isadmin:inf.admin_or_not
},
complete: function (result) {
console.log(result);
}
});
这是我的控制器:
public class LoginController : Controller
{
dbhelp dbh = new dbhelp();
// GET: Login
public ActionResult Index()
{
return View("Login");
}
public ActionResult login_req(string _name,string _pass,bool _isadmin)
{
ret retu = new ret();
retu.dt = new System.Data.DataTable();
if (_isadmin)
{
retu= dbh.data_table(string.Format( "select * from users where username='{0}' and password='{1}'",_name,_pass));
}
else {
retu = dbh.data_table(string.Format("select * from employees where e_name='{0}' and e_password='{1}' ", _name, _pass));
}
if (retu.dt.Rows.Count > 0)
{
return RedirectToAction("Index", "Home");
}
}
}
这是控制器,它返回成功执行的主视图,但浏览器中的前视图不会更改
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
答案 0 :(得分:1)
可悲的是,您无法直接将RedirectToAction
返回给Ajax。要实现您的目标,您应该查看this question。
基本上,您需要告诉js调用重定向。根据您的具体需求,有很多方法可以做到这一点。