Mapster Adpat не работает

Я пытаюсь сделать выбор в контроле формы.

<div class="form-row form-row-wide">
     <div class="col-sm-3">
             <select asp-for="EstadoId" class="form-control input-text" required="required" placeholder="Estado"></select>
             <span asp-validation-for="EstadoId" class="text-danger"></span>
     </div>
     <div class="col-sm-9">
             <select asp-for="CidadeId" class="form-control input-text" required></select>
             <span asp-validation-for="CidadeId" class="text-danger"></span>
     </div>
</div>

Но мой Адапт не получает элемент. Это мой контроллер.

public async Task<JsonResult> Get(Select2Request param)
        {
            try
            {
                var pagedResults = await _service.GetAllByPageAsync(w => w.Nome.Like(param.q), 20, param.page);
                var result = pagedResults.Data.Adapt<List<StateViewModel>>().Adapt<List<Select2Response>>();

                return Json(result);
            }
            catch (Exception e)
            {
                return new JsonResult(BadRequest(e));
            }
        }

Проблема в том, что после передачи для Adpat элементы r null. Это мое отображение.

public class StateMapping : IRegister
{
    public void Register(TypeAdapterConfig config)
    {
        config.NewConfig<StateViewModel, Select2Response>()
            .Map(p => p.id, s => s.EstadoId)
            .Map(p => p.text, s => s.Nome);
    }
}

Как я должен сделать это для работы?

1 ответ

Решение

При запуске Startup поместите следующий код:

using Mapster; //Reference your package


namespace YourApplication
{
    public class Startup
    {
        public Startup(IHostingEnvironment env)
        {
           //His previous codes ...

           //Place this code
            TypeAdapterConfig.GlobalSettings.Scan(Assembly.GetEntryAssembly());
        }
    }
}
Другие вопросы по тегам