Вызовите только обязательное поле / атрибут из разных моделей в модель представления в asp.net mvc 5 без использования структуры объекта - PullRequest
1 голос
/ 28 июня 2019

У меня есть две разные модели. UserPersonalDetail и UserEducationalDetails

Я хочу заполнить некоторые поля из вышеупомянутых двух моделей в модель представления под названием UserViewModel.

Я пытался, но я получаю все поля от обеих моделей.

public class UserEducationalDetails
{
    public Boolean Undergraduate { get; set; }

    public Boolean PostGraduate { get; set; }

    public String CollegeName { get; set; }

    public String SchoolName { get; set; }
}
public class UserPersonalDetail
{
    public String  FullName {get; set;}

    public string  FirstName { get; set; }

    public string LastName { get; set; }

    public string FatherName { get; set; }

    public string placeofBirth { get; set; }

    public string MarriedStatus { get; set; }
}

Я ожидаю, что модель представления пользователя должна выглядеть как

public class UserViewModel
{
    //Want to view the only following fields from UserPersonalDetails and UserEducationalDetails Model
    //From UserEducationalDetails Model

    public UserEducationalDetails CollegeName { get; set; }

    public UserEducationalDetails SchoolName { get; set; }

    //From UserEducationalDetails Model

    public UserPersonalDetail FullName {get; set;}

    public UserPersonalDetail MarriedStatus { get; set; }

}

1 Ответ

1 голос
/ 28 июня 2019

Вы неправильно понимаете, как работают классы моделей.Например, когда вы определяете это:

public class UserViewModel
{
    public UserEducationalDetails CollegeName { get; set; }
}

, это не означает, что CollegeName взято из модели UserEducationalDetails, это означает, что является моделью UserEducationalDetails.Это явно не то, что вы намерены.Что вы хотите сделать, это прочитать свойства при создании UserViewModel, что-то вроде этого:

public class UserViewModel
{
    // Types reflect the types used in the models
    public string CollegeName { get; private set; }

    public string SchoolName { get; private set; }

    public string FullName {get; private set;}

    public string MarriedStatus { get; private set; }

    public UserViewModel(UserEducationalDetails ued, UserPersonalDetails upd)
    {
        // Copy the properties that are relevant to this object
        CollegeName = ued.CollegeName;
        SchoolName = ued.SchoolName;
        FullName = upd.FullName;
        MarriedStatus = upd.MarriedStatus;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...