Передача объекта JSON на серверную часть и анализ в функции - PullRequest
0 голосов
/ 11 февраля 2019

Общее назначение кода Предоставленный код берет имя пользователя и пароль со страницы входа в систему через angularJS.Он передается функции, в которой находится сценарий AJAX.Затем данные передаются на сервер и должны сравниваться с данными в базе данных.Если все идет хорошо, он должен отправить идентификатор сеанса и имя пользователя в сеанс для целей аутентификации и авторизации.

Назначение предоставленного сценария: Я пытаюсь передать объект JSON на сторону сервера.У меня отключен JSON, но я извлекаю его из функции и получаю значения из объекта.

Что я пробовал ранее: Я пытался использовать класс спискаи строка.Я покажу список и где я застрял и строку.

AJAX:

    login: function (username, password) {
                var cred = { "uname": username, "pass": password };
                var response = $http({
                    method: "post",
                    url: "/Login/CheckUser",
                    data: JSON.stringify({ model: cred }),
                    contentType: 'application/json; charset=utf-8',
                    dataType: "JSON",
                    success: function (msg) {
                        if (msg) {
                            console.log("success");
                        }
                    },
                    error: function (msg) {
                        if (msg) {
                            console.log("fail");
                        }
                    }

с использованием метода строки:

   [HttpPost]
        public string CheckUser(String umodel) 
        {
            Console.Write(umodel);
            string modelCheck = umodel;
/*not sure how to parse from here */

Список:

        public class userCred
        {
            public string uname { get; set; }

            public string pass { get; set; }


            public List<userCred> userCreds = new List<userCred>();

        }
        [HttpPost]
        public string CheckUser(List<userCred> umodel) 
        {


            string uname = "";
            string pword = "";

/*Not sure how to access values from JSON here */

            /*  Begin Assigning values 
             *  Validation check
             */
            using (localtestEntities entity = new localtestEntities())
            {
                var user = entity.users.Where(u => u.uname == uname).FirstOrDefault();
                if (user != null)
                {
                    if (pword == user.pw)
                    {
                        Session["LoginID"] = user.id;
                        Session["Username"] = user.fname + ' ' + user.lname;
                        return user.id.ToString();
                    }
                    else
                    {
                        return "0";
                    }
                }
                else
                {
                    return "0";
                }
            }
            /* Begin Assigning values */
        } //End Check User

Ожидаемый результат будет успешно передавать объект JSON на сервер для сравнения данных в базе данных и возвращать 0 или новый сеанс в зависимости от того, совпадают они или нет.

1 Ответ

0 голосов
/ 11 февраля 2019

Для вашего объекта полезной нагрузки JavaScript создайте точную модель, скажем, UserCred

public class UserCred
{
    public string Uname { get; set; }
    public string Pass { get; set; }
}

Теперь, когда вы делаете сообщение AJAX, MVC привязывает вашу полезную нагрузку к модели.И для доступа к вашим свойствам просто используйте model.property

[HttpPost]
public string CheckUser(UserCred model) 
{
  if(!ModelState.IsValid)
  {
    return "0";
  }
    string uname = model.Uname;
    string pword = model.Pass;

    /* Your Code
     *  
     */

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