. net Core 3.1 C# MVC Ссылка на объект обязательна для нестатического c поля, метода или свойства - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь связать массив объектов в модели представления из представления, чтобы отправить обратно в контроллер для публикации в БД. Я заполняю список выбора следующим образом в ViewModel в ContactForm:

       public List<SelectListItem> PhoneTypes { get; } = new List<SelectListItem> {
            new SelectListItem { Value = "Not Specified", Text = "Not Specified"},
            new SelectListItem { Value = "Cell", Text = "Cell"},
            new SelectListItem { Value = "Home", Text = "Home"}
        };

В моем контроллере я отправляю модель представления в представление следующим образом:

        ContactInfoViewModel civm = new ContactInfoViewModel();

        List<ContactForm> tpl = new List<ContactForm>();
        for(int i = 0; i < 3; i++)
        {
            tpl.Add(new ContactForm());
        }
        civm.ContactForms = tpl;

На мой взгляд, я Цикл, чтобы связать объекты контактной формы из списка в форме. Это работает нормально, если я закомментирую строку выбора.

        @for(int i = 0; i < Model.ContactInfoViewModel.ContactForms.Count; i++)
        {

            <label asp-for="ContactInfoViewModel.ContactForms[i].Name"></label>  <input asp-for="ContactInfoViewModel.ContactForms[i].Name" />
            <label asp-for="ContactInfoViewModel.ContactForms[i].Phone"></label>  <input asp-for="ContactInfoViewModel.ContactForms[i].Phone" />
            <label asp-for="ContactInfoViewModel.ContactForms[i].PhoneType"></label>  <select asp-for="ContactInfoViewModel.ContactForms[i].PhoneType" asp-items="ContactInfoViewModel.ContactForms[i].PhoneTypes"></select>
            <label asp-for="ContactInfoViewModel.ContactForms[i].Relationship"></label>  <input asp-for="ContactInfoViewModel.ContactForms[i].Relationship" />
            <br />
        }

Вышеприведенная строка списка выдает эту ошибку:

Ошибка CS0120 Ссылка на объект требуется для незавершенного c поле, метод или свойство 'ContactInfoViewModel.ContactForms'

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

Заранее спасибо.

...