Как написать URL для HttpGet Api в Asp.net mvc при получении данных из текстового поля страницы входа - PullRequest
0 голосов
/ 25 мая 2018

В моем проекте я использую архитектуру с тремя связями (UI -> Controller -> DAL).Сначала я создал HttpPost Api, который отлично работал как через пользовательский интерфейс, так и через почтальон.но когда я создал Login HttpGet Api для проверки доступности пользователя в базе данных, мой Api работает нормально на почтальоне, где я только что проверил ответ Api (поток от контроллера к DAl), но когда я хочу использовать HttpGet Api через вебСтраница входа не работает (поток от пользовательского интерфейса до контроллера).Может быть, я делаю ошибку в URL-адресе, где мне нужно войти в текстовое поле Идентификатор страницы логина. Пожалуйста, вставьте мой запрос ..

Вот мой код:

Контроллер:

 [HttpGet] 
    public string login(string UserName, string Password)
    {
        Users objUser = new Users();
        bool bResult = objUser.ValidateUser(UserName, Password);
        string strResponse = "";
        if (bResult)
        {
            strResponse = "Login Successful";
        }
        else
        {
            strResponse = "Failed to Login.";
        }

        return strResponse;  
    }

DAL:

 public bool ValidateUser(string strUserName , string strPassword)
    {
        string strQuery = "SELECT * FROM [dbo].[user] WHERE user_name = '" + strUserName + "' and password_ = '"+ strPassword + "'";

        DataTable dtb = GetDataFromQuery(strQuery);
        if (dtb != null && dtb.Rows.Count > 0)
        {
            return true;
        }
        else
        {
            return false;
        }

Ajax:

function httpMVCGetRequest(url, callback, errcallback) {

url = window.location.origin + url;
$.ajax({
    type: "GET",
    url: url,
    contentType: "application/json; charset=utf-8",
    dataType: "jsonp",
    async: true,
    success: callback,
    error: errcallback
});

}

Вызов функции Ajax, здесь я получаю ka Url для получения данных из моего текстового поля логина, когдакогда-нибудь кто-нибудь вводит данные для входа в систему.

function callSignIn() {

httpMVCGetRequest('/users/login?UserName=$("#nameuser").val()&Password=$("#passsignin").val()', callbackSignIn);  

}
function callbackSignIn(data) {    
alert(data);}

HTML (Страница входа в систему):

<div class="login-form">
            <div class="sign-in-htm">
                <div class="group">
                    <label for="user" class="label">Username</label>
                    <input id="nameuser" type="text" class="input">
                </div>
                <div class="group">
                    <label for="pass" class="label">Password</label>
                    <input id="passsignin" type="password" class="input" data-type="password">
                </div>
                <div class="group">
                    <input id="check" type="checkbox" class="check" checked>
                    <label for="check"><span class="icon"></span> Keep me Signed in</label>
                </div>
                <div class="group">

                    <li class="button"><a onclick="callSignIn();"><center>Sign In</center></a></li>
                </div>
                <div class="hr"></div>
                <div class="foot-lnk">
                    <label for="tab-3">Forgot Password?</label>
                </div>
            </div>

когда я пишу этот URL на почтальоне, это дает мне ответ на успешный вход в систему

http://localhost:3672/api/users/login?UserName=abc&Password=e123

но при записи этого URL в функцию ajax, чтобы получить входные данные пользователя, он застрял ..

'/users/login?UserName=$("#nameuser").val()&Password=$("#passsignin").val()'

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете упростить свой код следующим образом:

 function httpMVCGetRequest(url,    callback, rrcallback) {
    $.get(url, {
        "UserName": $("#nameuser").val(),
        "Password": $("#passsignin").val()
    },
        callback);
}
httpMVCGetRequest('/users/login', callbackSignIn);

'/ users / login? UserName = $ ("# nameuser"). Val () & Password = $ ("# passsignin"). Val() 'не будет работать, так как $ ("# nameuser") - это синтаксис jquery, и запись его в виде строкового литерала не будет вычисляться, но будет отображаться как есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...