Отправка данных в ключе, пара значений в API - PullRequest
0 голосов
/ 03 июня 2019

У меня есть мой метод API, как показано ниже:

[HttpPost()]
public async Task SaveDataAsync([FromBody] UserData value)
{
     //saving logic here
}

Где мои UserData определены следующим образом:

public class UserData
{
   public string Conditions { get; set; }
   public DateTime Status { get; set; }
   public Dictionary<string, Guid> userSelections { get; set; } = new Dictionary<string, Guid>();   
}

Как я могу отправить объект Dictionary выше моего пользовательского интерфейса.

В моем угловом интерфейсе пользователь может выбрать несколько данных (представленных в таблице) и вызвать этот метод для сохранения данных.

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

Так что после выбора мой объект (userSelections, как представлено в моем объекте c #), как показано ниже:

0: Name: "Pete", Status: "open", id="af9f9937-f51a-4fd8-b29c-f9ef899684c9"
1: Name: "Smith", Status: "closed", id="vfdf9337-f51s-wfd8-b49-f5ef799h84c9"
2: Name: "Ang", Status: "open", id="334dd33-d3e3-cxc333-e3c-ccdc3cd32"

Как можноЯ создаю пару ключ-значение из имени и идентификатора сверху и отправляю ее на мой API

Ниже приведен мой вызов API от углового

//this holds above data
 const userSelectedData = []; 

 const userData = {
        'name': userName,
        'conditions': conditions,
        'userSelections': userSelectedData       
      };

      this.service.save(userData)
        .subscribe(
          (res) => {            
            //saved         
          });         
    }

1 Ответ

0 голосов
/ 03 июня 2019

Поскольку у меня есть только базовые знания C #, я предполагаю, что служба принимает JSON в указанном формате.

{
  'Conditions': '',
  'Status': '',
  'userSelections': {
    'name': 'id'
  }
}

Чтобы получить userSelections в правильном формате, который принимает служба, вы можете сопоставить записи массива с указанной структурой.

let obj = {};
(userSelectedData || []).forEach(d => {
  obj[d.Name] = d.id;
});

const userData = {
  'name': userName,
  'conditions': conditions,
  'userSelections': obj       
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...