从Asp.Net中的Webmethod重定向

时间:2011-11-30 07:17:13

标签: asp.net web-services web-applications

Asp.Net Programming的新手,刚刚开始了一个Web项目。 我使用JSON从Aspx页面调用WebMethod,如下所示:

 <script type="text/javascript">

    function getLogin() {
        var userName = document.getElementById('TextBox1').value;
        $.ajax({
            type: "POST",
            url: "Services/LogService.asmx/authenticateLogin",
            data: "{'userName':'" +userName.toString()+ "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
            alert(response.d)
            },
            error: function (xhr, status, error) {
                // alert(textStatus);
                DisplayError(xhr);
            }

        });
    }


function DisplayError(xhr) {
 var msg = JSON.parse(xhr.responseText);
 alert(msg.Message);  }
</script>

WebMethod:

[WebMethod]
    public string authenticateLogin(string userName)
    {
        LoginBO loginBO = new LoginBO();
        loginBO.userName = userName.ToString().Trim();
        string result = "";
        try
        {
            LoginDao loginDao = DAOFactory.GetDaoFactory().getLoginDao();
            result = loginDao.selectUser(loginBO);
        }
        catch (DBConnectionException)
        {
            //result = "DB Conenction";
            throw new Exception("DB Connection is Down");
        }

        catch (InvalidLoginException)
        {
            //HttpResponse res = new HttpResponse();
            //HttpResponse.ReferenceEquals.Redirect("~/Login.aspx");
            throw new InvalidLoginException("Login Is Invalid");
        }
        catch (Exception)
        {
            throw new Exception("Uanble to Fetch ");
        }
        int ctx = Context.Response.StatusCode;
        return result;
    }

成功验证后,我想将用户重定向到另一个aspx页面。

最佳做法是什么?

由于 塞缪尔

3 个答案:

答案 0 :(得分:4)

将重定向添加到getLogin()功能的成功部分:

success: 
  function (response) {
    alert(response.d);
    windows.location.href = "http://url.for.redirect";
  }

(或使用some other method在jQuery / Javascript中重定向)。

答案 1 :(得分:2)

在Ajax方法中

success: function(msg) {
      alert(response.d);
        window.location = "xyz.aspx";
  },

答案 2 :(得分:0)

       success: function (response) {
          alert(response.d)
         window.location.href = "some.aspx";.
        }    

我认为它会对你有所帮助。