POST-запрос на контроллере пуст - PullRequest
0 голосов
/ 29 апреля 2020

Если я пытаюсь «ПОСТАВИТЬ» моего пользователя, он продолжает прибывать в контроллер как ноль. Я попытался напечатать «данные» в моей консоли chrome, и там я получаю правильные значения. Я уже попробовал все, что знаю, и это дает мне лучший результат. Но все же я продолжаю прибывать как нулевой на мой контроллер.

Ниже вы можете найти мои фрагменты кода

мой выбор:

let username = document.getElementById("username").value;
let url = "https://localhost:53342/gebruiker/Login"
var data = {
    username : username.value
}
fetch(url, {
        method: "POST",
        body: JSON.stringify(data),
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
    })
    .then((response) => {
        if (response.status === 200) {
            return response.json();
        }
        else {
        console.log("POST failed")}
    })

Мой контроллер:

public class GebruikerController : ApiController
{
    private readonly MockGebruikerRepository _gebruikerslijst;

    public GebruikerController(MockGebruikerRepository gebruikerslijst)
    {
        _gebruikerslijst = gebruikerslijst;
    }

    public Gebruiker Login(Gebruiker newGebruiker)
    {
        Gebruiker gebruiker = newGebruiker;
        bool alreadyexist = false;
        IEnumerable<Gebruiker> gebruikers = _gebruikerslijst.GetAllGebruikers();

        foreach (Gebruiker user in gebruikers)
        {
            if (user.Username == gebruiker.Username)
            {

                alreadyexist = true;
            }
        }

        if(alreadyexist == false)
        {
            gebruiker = _gebruikerslijst.Add(gebruiker);
        }
        else
        {
            Console.WriteLine("user already exist");
        }
        return gebruiker;
    }
}

Моя модель:

 public class GebruikerCreateModel
{
    [Required, MinLength(3)]
    public String Username { get; set; }
}

Мой репозиторий:

public class MockGebruikesRepository : MockGebruikerRepository
{
    private readonly List<Gebruiker> _gebruikers;
    public MockGebruikesRepository()
    {
        _gebruikers = new List<Gebruiker>()
        {
            new Gebruiker("danny"),
            new Gebruiker("kind") 
        };

    }




    public Gebruiker Add(Gebruiker newGebruiker)
    {
        _gebruikers.Add(newGebruiker);
        return newGebruiker;
    }

    public ICollection<Gebruiker> GetAllGebruikers()
    {
        return _gebruikers;
    }
}

}

Мой класс Gebruiker:

public class Gebruiker : IGebruiker
{
    public string Username { get ; set ; }

    public Gebruiker(String username)
    {
        this.Username = username;
    }

    public Gebruiker()
    {

    }
}

} ​​

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Просто удалите .value из username.value, потому что .value использовал для извлечения данных из html, и вы уже использовали .value при извлечении данных через DOM

var data = {
    username : username
}
0 голосов
/ 29 апреля 2020

Просто измените строку кода ниже:

var data = {username: username}

вы получите значение в контроллере. вы уже получили значение html control в имени пользователя. нет необходимости использовать username.value в разделе данных, это привело к неопределенному значению.

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