Ссылка на свойство списка в модели - PullRequest
1 голос
/ 22 марта 2020

У меня есть модели.

namespace GbngWebClient.Models
{
    public class UserProfileMulti25
    {
        public int SelectionId { get; set; }
        public int ProfileCategoryId { get; set; }
        public string Description { get; set; }
        public bool SelectedSwitch { get; set; }
    }
}

using System.Collections.Generic;

namespace GbngWebClient.Models
{
    public class UserProfileForMaintVM
    {
    public UserProfileSingleVM UserProfileSingleVM { get; set; }
    public List<UserProfileMulti25> UserProfileMultiList25 { get; set; }
    }
}

Я пытаюсь загрузить свойство, представляющее собой список в модели UserProfileForMaintVM.

Я получаю "ссылка на объект не установлена ​​на экземпляр объекта ", когда я делаю добавление.

// Instantiate a new UserProfileForMaintVM.
UserProfileForMaintVM userProfileForMaintVM = new UserProfileForMaintVM();

UserProfileMulti25 userProfileMulti25 = new UserProfileMulti25
{
   SelectionId = hold.SelectionId,
   ProfileCategoryId = hold.ProfileCategoryId,
   Description = hold.Description,
   SelectedSwitch = hold.SelectedSwitch
};

// Add the multi list to the model's multi list.
userProfileForMaintVM.UserProfileMultiList25.Add(userProfileMulti25);

Так что я думаю, что мне нужно создать экземпляр списка UserProfileMultiList25 в модели UserProfileForMaintVM. Я пытаюсь создать экземпляр списка UserProfileMultiList25 в модели UserProfileForMaintVM, но ничего из этого не работает.

Как мне это сделать?

 // This one I get: userProfileForMaintVM is a variable but  used like a type.
 userProfileForMaintVM.UserProfileMultiList25 a = new userProfileForMaintVM.UserProfileMultiList25();

 // This one I get: The type name UserProfileMultiList25 does not exist in the type UserProfileForMaintVM.
 UserProfileForMaintVM.UserProfileMultiList25 b = new UserProfileForMaintVM.UserProfileMultiList25();

 // This one I get: The type name List<> does not exist in the type UserProfileForMaintVM.
 UserProfileForMaintVM.List<UserProfileMulti25> c = new UserProfileForMaintVM.List<UserProfileMulti25>();

На мой взгляд, я могу Ссылка на свойство UserProfileSingleVM просто отлично.

@model GbngWebClient.Models.UserProfileForMaintVM

@Html.LabelFor(model => model.UserProfileSingleVM.WhoIAmDescr)

1 Ответ

0 голосов
/ 22 марта 2020

Вы правы, создавая экземпляр списка первым. Вы можете добавить конструктор внутри класса и создать список там. Таким образом, каждый раз, когда создается экземпляр UserProfileForMaintVM, он автоматически создает список.

public class UserProfileForMaintVM
{
   // add this to your model
   public UserProfileForMaintVM(){
      this.UserProfileMultiList25 = new List<UserProfileMulti25>();
   }

   public UserProfileSingleVM UserProfileSingleVM {get;set;}
   public List<UserProfileMulti25> UserProfileMultiList25{get;set;}
}
...