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