ASP.NET - Как установить необязательное поле в классе ViewModel? - PullRequest
0 голосов
/ 07 июля 2019

Работая над проектом ASP.NET, я столкнулся с проблемой.

  • Данные внешнего интерфейса
fruits = [
    {
        type: "First",
        size: 50,
        weight: 120,
        optionalParam1: "String",
        optionalParam2: 152
    },
    {
        type: "Second",
        size: 12,
        weight: 160,
        optionalParam3: "Another String",
        optionalParam4: 169
    },
    {
        type: "Third",
        size: 15,
        weight: 190,
        optionalParam1: "String for Third",
        optionalParam5: [1, 2]
    }
]

saleInfo = {
    param1: 12,
    param2: "string",
    param3: 150
}
  • ViewModel Class

public class FruitViewModel {
    public Dictionary<string, dynamic>[] fruits;
    public Dictionary<string, dynamic> saleInfo;
    public int total;
    public Dictionary<string, dynamic> prevInfo;
}

Просто хочу сохранить эту информацию на сервере sql и восстановить ее из базы данных sql.Но я не уверен, правильно ли использовать словарь для этого.

Не могли бы вы подсказать мне, как получить эту информацию и сохранить ее в sql db?Также как восстановить эту информацию из базы данных sql и отправить на веб-интерфейс?

PS.Здесь параметр prevInfo такой же, как параметр saleInfo, но, как следует из названия, он необязательный.Для запроса он пуст, доступен только для ответа.

1 Ответ

0 голосов
/ 08 июля 2019

Список работает нормально.

Для первого создайте класс, который отражает то, что ожидает ваш интерфейс, что-то вроде:

public class FruitModel {
     public string type { get; set; },
     public int size { get;set; },
     //the rest of properties you want
}

тогда ваша ViewModel начинает выглядеть так:

public class FruitViewModel {
    public List<FruitModel> fruits;

    //change the rest to match
    public Dictionary<string, dynamic> saleInfo;
    public int total;
    public Dictionary<string, dynamic> prevInfo;
}

Список будет сериализован в Array на внешнем интерфейсе. Вам также необходимо будет выполнить некоторые манипуляции, так как ваши данные будут инкапсулированы в объект-держатель.

если вы получите данные в переменной с именем apiData, то вы получите доступ к остальным с помощью apiData.fruits, и, например, первый элемент - apiData.fruits [0].

Если вы хотите упростить свою жизнь на внешнем интерфейсе, все, что вам нужно сделать, это назначить данные ответов прямо вашим переменным, например:

fruits = apiData.fruits;

Тогда больше ничего не нужно менять.

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