0
I’m trying to make a Binding of my view, only when the action is called my object filaViewModel comes with the filaViewModel.Validators equal to null.
I’ve tried to pass with
@Html.Hidden("Code", validator. Code)
, but it’s not going.
My view.
@model Api.Web.Areas.Admin.ViewModels.FilaViewModel
@{
Layout = Layouts.MasterPageForm;
}
@section breadcrumbs{
@Html.Partial("Breadcrumbs/_Fila")
}
@section notificacao{
@Html.NotificacaoMensagem(Model?.MensagensAlerta, TipoMensagemNotificacao.Alerta)
@Html.NotificacaoMensagem(Model?.MensagemSucesso, TipoMensagemNotificacao.Sucesso)
@Html.NotificacaoMensagem(Model?.MensagensErro, TipoMensagemNotificacao.Falha)
}
@using (Html.BeginForm("Novo", "Fila", FormMethod.Post, new { @class = "main" }))
{
@Html.AntiForgeryToken()
<div class="form-group">
<label class="col-sm-2 col-md-2 col-xs-2 control-label ui-widget">Validadores: </label>
<div class="row">
<div class="col-md-10 col-sm-6">
<table cellpadding="0" cellspacing="0" border="0" class="dataTable">
<thead>
<tr>
<th>Codigo</th>
<th>Tipo Validador</th>
<th>Versão do Assembly</th>
<th>Nome Serviço</th>
<th>Incluidos</th>
</tr>
</thead>
<tbody>
@if (Model.Validadores != null)
{
foreach (var validador in Model.Validadores)
{
<tr>
<td>
@Html.Hidden("Codigo", validador.Codigo)
<span>@validador.Codigo</span>
</td>
<td>
@Html.Hidden("_tipo", validador._tipo)
<span>@validador._tipo</span>
</td>
<td>
@Html.Hidden("Versao.VersaoDoAssembly", validador.Versao.VersaoDoAssembly)
<span>@validador.Versao.VersaoDoAssembly</span>
</td>
<td>
<span>
@Html.Hidden("Versao.Servico.Nome", validador.Versao.Servico.Nome)
@validador.Versao.Servico.Nome
</span>
</td>
<td style="text-align:center">
@Html.CheckBoxFor(model => validador.Selected)
</td>
</tr>
}
}
</tbody>
</table>
</div>
</div>
</div>
<div class="form-group">
<div class="rodape-form">
<a class="btn btBlue" href="@Url.Action("Index", "Fila", new { Area = "Admin" })" title="">@Resources.Botao_Voltar</a>
<input type="submit" name="submit" class="btn btGreen" value="@Resources.Botao_Salvar" />
</div>
</div>
}
My Viewmodel
public class FilaViewModel : ViewModelBase
{
public FilaViewModel()
{
Alertas = new List<AlertaViewModel>();
Erros = new List<ErroViewModel>();
AcoesClient = new List<SelectListItem>();
TipoDeprocessamentos = new List<SelectListItem>();
TipoDeValidadores = new List<SelectListItem>();
TodasFilas = new List<SelectListItem>();
ExecutoresClient = new List<SelectListItem>();
ValidadorClient = new List<SelectListItem>();
}
public int Codigo { get; set; }
public string Descricao { get; set; }
public Rota Rota { get; set; }
public ExecutorRest Agente { get; set; }
public ExecutorRest AgenteDefault { get; set; }
public IEnumerable<SelectListItem> AcoesClient { get; set; }
public List<VerboHttp> Acoes { get; set; }
public List<TipoDeValidador> TipoValidadores { get; set; }
public List<TipoDeProcessamento> Processamentos { get; set; }
public IEnumerable<SelectListItem> TipoDeprocessamentos { get; set; }
public IEnumerable<SelectListItem> TipoDeValidadores { get; set; }
public List<SelectListItem> TodasFilas { get; set; }
public string _situacao { get; set; }
public SituacaoDaFila Situacao
{
get { return ExtensaoDeEnumerador.ObterEnumerador<SituacaoDaFila>(_situacao?.Trim()); }
set { _situacao = value.ObterDescricao(); }
}
public string _tipoDeProcessamento { get; set; }
public TipoDeProcessamento TipoDeProcessamento
{
get { return ExtensaoDeEnumerador.ObterEnumerador<TipoDeProcessamento>(_tipoDeProcessamento?.Trim()); }
set { _tipoDeProcessamento = value.ObterDescricao(); }
}
public FilaDadosModel FilaPrincipal { get; set; }
public ICollection<FilaDadosModel> FilasSecundarias { get; set; }
public List<ValidadorDadosModel> Validadores { get; set; }
public List<SelectListItem> ValidadorClient { get; set; }
public List<SelectListItem> ExecutoresClient { get; set; }
public List<ExecutorRest> Executores { get; set; }
public bool PermiteReprocessamento { get; set; }
public bool GravaAuditoria { get; set; }
public int TotalRegistros { get; set; }
public IPagedList<FilaDadosModel> ResultadoPaginado { get; set; }
public IList<FilaDadosModel> Filas { get; set; }
}
Controlle
public ActionResult Novo()
{
Title = Resources.Label_Cadastrar + " - " + Resources.Label_Fila;
TituloDoFormulario = Resources.Label_Cadastrar + " " + Resources.Label_Fila;
var filaViewModel = new FilaViewModel();
filaViewModel.AcoesClient = ExtensaoDeEnumerador.EnumToSelectList<VerboHttp>("U");
filaViewModel.TipoDeprocessamentos = ExtensaoDeEnumerador.EnumToSelectList<TipoDeProcessamento>("U");
filaViewModel.TipoDeValidadores = ExtensaoDeEnumerador.EnumToSelectList<TipoDeValidador>("U");
filaViewModel.Validadores = ListarValidadores("").Validadores;
return View(filaViewModel);
}
and
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Novo(FilaViewModel filaViewModel)
{
Title = Resources.Label_Cadastrar + " - " + Resources.Label_Fila;
TituloDoFormulario = Resources.Label_Cadastrar + " " + Resources.Label_Fila;
var filas = new List<FilaDadosModel>();
if (ModelState.IsValid)
{
............... ..
}
filaViewModel.Erros.AddRange(ObtemErrosValidacao());
return View(filaViewModel);
}
Could you put your Controller too, please?
– perozzo
@Perozzo, posted.
– Marco Souza
In
filaViewModel.Validadores = ListarValidadores("").Validadores;
he is no longernull
?– Leandro Angelo
@Leandroangelo, not loaded normally, even goes to view.
– Marco Souza