Отправить ViewModel для API ASP.net Core 2 - PullRequest
0 голосов
/ 10 марта 2019

Я работаю в проекте Core 2.2 API Project для веб-проекта Db Layer For Views

Я могу читать данные из API, но у меня проблема с отправкой данных для обновления

Код

1 - отправка данных из веб-проекта

 [HttpPost]
    public async Task<IActionResult> Edit(NationalityViewModel nationality )
    {
        LawyerAPI lawyerAPI = new LawyerAPI();
        HttpClient httpClient = lawyerAPI.InitializeClient();            
       HttpResponseMessage res = await httpClient.PutAsJsonAsync("api/nofactory/updatenationality", nationality);       
        return View(nationality);

    }

2-InitializeClient

 private string _apiBaseURI = "http://localhost:57030";
    public HttpClient InitializeClient()
    {
        var client = new HttpClient();
        //Passing service base url  
        client.BaseAddress = new Uri(_apiBaseURI);
        client.DefaultRequestHeaders.Clear();
        //Define request data format  
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        return client;

    }

3-API

  [Route("updatenationality")]

    public IActionResult Put(NationalityViewModel nationality)
    { 

        var nat=new Nationality();
        nat.Name=nationality.Name;
        nat.IsActive=nationality.IsActive;
        nat.Id=nationality.Id;
             _NationalityRepository.Update(nat);

        return Ok();
    }

проблема заключается в том, чтопеременная национальности в веб-проекте содержит данные, и при отправке в API она является пустой моделью, точка останова попадает в метод API, но переменная пуста

я думаю, что проблема заключается в функции отправки

Спасибо

Редактировать для уточнения я добавил изображения

Web Controller Data

Api Controller

1 Ответ

0 голосов
/ 10 марта 2019

Вы должны указать платформе привязку из тела запроса.Вы делаете это путем аннотирования вашего параметра NationalityViewModel атрибутом [FromBody].

public IActionResult Put([FromBody] NationalityViewModel nationality)

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