отображение объектов обычного класса в модель MVC - PullRequest
0 голосов
/ 25 сентября 2018

мы конвертируем asp.net в MVC.у нас есть фреймворк, и он возвращает обычные объекты класса или наборы данных.Каков наилучший способ сопоставить объект класса с моделью MVC?пожалуйста, дайте мне знать.

например,

//framework class
public class ISTApplicant
{
   public ISTApplicant GetApplicant()
   { 
       ISTApplicant objApplicant = new ISTApplicant();
       return objApplicant;
   }

   public Dataset GetApplicants()
   {
       return ds;
   }
}

Модель MVC

public class ApplicantModel
{
    public string CustomerNo { get; set; }
    public string LastName { get; set; }
    public List<ApplicantModel> LstApplicantModel { get; set; }
}

Класс контроллера

public class ApplicantController : Controller
{
    //how can i assign framework object to my model, something like this.  
    public ActionResult GetApplicant()
    {  
        ApplicantModel model = myframework.Applicant.GetApplicant();
        return mode;
    }

    public ActionResult GetApplicants()
    {
         //if it is dataset what is the best way to handle?
         LstApplicantModel list =  myframework.GetApplicants();
         return list;
    }
}

Вы можете увидеть некоторые ошибкитак как я набрал его.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Это именно та проблема, которую решает AutoMapper: https://automapper.org/

Если вы определяете свои новые модели MVC для использования тех же имен и типов свойств, что и для существующих моделей каркаса, вы можете легко преобразовать одну в другую.в противном случае достаточно просто определить явные сопоставления для отдельных свойств.

Документация по вышеуказанной ссылке довольно хорошая, поэтому нет необходимости повторять ее здесь, но стоит указать, что конфигурации сопоставления являются направленными с точки зренияТипы объектов from и to.

Например, если вы возвращаете объекты из базы данных и затем отправляете обновленные версии из приложения MVC, вам потребуются отдельные сопоставления для перехода от типа A к типу B итакже из типа B обратно в тип A.

0 голосов
/ 25 сентября 2018

В вашем коде есть несколько вещей, которые не будут компилироваться.Кроме того, помните о пробелах, чтобы сделать ваш код более читабельным.

Предполагается, что вы правильно создали действие в вашем контроллере, а ISTApplicant имеет те же поля, что и ApplicantModel вы можете сделать что-то вроде этого:

В вашем Startup.cs файле:

Mapper.Initialize(cfg => {
    cfg.CreateMap<ISTApplicant, ApplicantModel>();
});

Затем в вашем контроллере:

public ActionResult GetApplicant() 
{
    ISTApplicant db = myframework.Applicant.GetApplicant();
    ApplicantModel model = Mapper.Map<ApplicantModel>(db);
    return model;
}

В приведенном выше примере используется Automapper .Посмотрите, как его настроить и как правильно добавить зависимость для каждого контроллера.

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

Надеюсь, это поможет!

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