Как инициализировать модель с многомерными массивами в ASP.Net MVC? - PullRequest
0 голосов
/ 11 июня 2019

Инициализация модели с несколькими массивами.

Я уже пытался инициализировать, но он не работает.

namespace ArrayTest.Models
{
    public class Question
    {
        public string question { get; set; }
        public string[] option { get; set; }
        public string[] score { get; set; }
    }
}

public class DefaultController : Controller
{

    public ActionResult Index()
    {
        IEnumerable<Question> x = new List<Question>
        {
            new Question(){ question = "Question1", option = { "abc","cde","efg"}, score = { "abc", "cde", "efg" } },
            new Question(){},
            new Question(){},
            new Question(){}
        };
        return View(x);
    }
}

Я ожидаю, что эта модель будет инициализирована и отправлена ​​в представление.

Ответы [ 2 ]

2 голосов
/ 11 июня 2019

string[] не имеет метода .Add(), поэтому option = { "abc", "cde", "efg"} не будет работать. Вам нужно создать массив и инициализировать массив:

var list = new List<Question>
{
    new Question()
    {
        question = "Question1",
        option = new string[] { "abc", "cde", "efg"},
        score = new string[] { "abc", "cde", "efg" }
    },

    new Question(){},
    new Question(){},
    new Question(){}
};
0 голосов
/ 11 июня 2019

Шаг 1: Добавьте конструктор в ваш модал, как показано ниже,

 public class Question
    {
        public string question { get; set; }
        public string[] option { get; set; }
        public string[] score { get; set; }

        public Question(string question, List<string> option, List<string> score)
        {
            this.question = question;
            this.option = option.ToArray();
            this.score = score.ToArray();

        }
    }

Шаг 2: Измените метод контроллера следующим образом:

 IEnumerable<Question> x = new List<Question> {
                new Question("Question1", new List<string>{"cde","efg"}, new List<string> { "abc", "cde", "efg" }),
                new Question("Question2", new List<string>{"cde","efg"}, new List<string> { "abc", "cde", "efg" }) } ;

Если вы используете этот список, вы также можете использовать метод .Add ().

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