用户验证问题

时间:2018-05-14 10:05:52

标签: c# asp.net asp.net-mvc

我正在检查用户是否存在,然后如果存在,我将把他带到主页面。
我已经成功调用了主页面操作方法,但前视图没有改变。

这是我的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();
    }
}

1 个答案:

答案 0 :(得分:1)

可悲的是,您无法直接将RedirectToAction返回给Ajax。要实现您的目标,您应该查看this question

基本上,您需要告诉js调用重定向。根据您的具体需求,有很多方法可以做到这一点。