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());
}
}
}