0
When I start a registration screen, the system loads a ViewModel with the combobox loaded:
If I, for example, click the record button, the fields in my viewmodel are validated, only the page does not keep the combobox loaded.
How to solve this?
public class PessoaFisicaViewModel
{
        [DisplayName("Código")]
        public int Id { get; set; }
        [Required(ErrorMessage ="Campo obrigatório")]
        [DisplayName("Nome Completo")]
        public string NomeCompleto { get; set; }
        [DisplayName("Apelido")]
        public string Apelido { get; set; }
        [Required(ErrorMessage = "Campo obrigatório")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
        [DataType(DataType.Date, ErrorMessage = "Data em formato inválido")]
        [DisplayName("Nascimento")]
        public DateTime? DataNascimento { get; set; }
        [DisplayName("Sexo")]
        public Sexo Sexo { get; set; }
        [DisplayName("Sexo")]
        public string SexoDescricao { get; set; }
        [DisplayName("Sexos")]
        public IEnumerable<SelectListItem> Sexos { get; set; }
        [DisplayName("Estado Civil")]
        public EstadoCivil EstadoCivil { get; set; }
        [DisplayName("Estado Civil")]
        public string EstadoCivilDescricao { get; set; }
        [DisplayName("Estados Civis")]
        public IEnumerable<SelectListItem> EstadosCivis { get; set; }
}
@model SistemaComercial.Application.ViewModels.Pessoa.PessoaViewModel
@{
    ViewData["Title"] = "PessoaFisica";
}
<div class="form-horizontal">
    <div class="form-group">
        <label asp-for="PessoaFisicaViewModel.NomeCompleto" class="col-md-2 control-label"></label>
        <div class="col-md-8">
            <input asp-for="PessoaFisicaViewModel.NomeCompleto" class="form-control" />
            <span asp-validation-for="PessoaFisicaViewModel.NomeCompleto" class="text-danger"></span>
        </div>
    </div>
    <div class="form-group">
        <label asp-for="PessoaFisicaViewModel.Apelido" class="col-md-2 control-label"></label>
        <div class="col-md-8">
            <input asp-for="PessoaFisicaViewModel.Apelido" class="form-control" />
            <span asp-validation-for="PessoaFisicaViewModel.Apelido" class="text-danger"></span>
        </div>
    </div>
    <div class="form-group">
        <label asp-for="PessoaFisicaViewModel.DataNascimento" class="col-md-2 control-label"></label>
        <div class="col-md-4">
            <input asp-for="PessoaFisicaViewModel.DataNascimento" class="form-control" />
            <span asp-validation-for="PessoaFisicaViewModel.DataNascimento" class="text-danger"></span>
        </div>
    </div>
    <div class="form-group">
        <label asp-for="PessoaFisicaViewModel.Sexo" class="col-md-2 control-label"></label>
        <div class="col-md-2">
            <select asp-for="PessoaFisicaViewModel.Sexo" asp-items="Model.PessoaFisicaViewModel.Sexos" class="form-control">
                <option value="">--Selecione--</option>
            </select>
            <span asp-validation-for="PessoaFisicaViewModel.Sexo" class="text-danger"></span>
        </div>
    </div>
    <div class="form-group">
        <label asp-for="PessoaFisicaViewModel.EstadoCivil" class="col-md-2 control-label"></label>
        <div class="col-md-3">
            <select asp-for="PessoaFisicaViewModel.EstadoCivil" asp-items="Model.PessoaFisicaViewModel.EstadosCivis" class="form-control">
                <option value="">--Selecione--</option>
            </select>
            <span asp-validation-for="PessoaFisicaViewModel.EstadoCivil" class="text-danger"></span>
        </div>
    </div>
</div>
[HttpPost]
        [Authorize(Policy = "CanWriteCustomerData")]
        [Route("pessoa-gerenciamento/cadastrar-novo")]
        [ValidateAntiForgeryToken]
        public IActionResult Create(PessoaViewModel pessoaViewModel)
        {
            if (!ModelState.IsValid) return View(pessoaViewModel);
            _pessoaAppService.Register(pessoaViewModel);
            if (IsValidOperation())
                ViewBag.Sucesso = "Pessoa Cadastrada!";
            return View(pessoaViewModel);
        }



Put the controller!?
– novic
I just upgraded with the controller.. :)
– Master JR
When you click on "record" it is called the method post of your controller; you need to return the object
pessoa(or whatever used) to reload in case of error.– rLinhares