我有一个使用隐藏表单和给定实体模型的所有字段呈现的视图。在某些时候,通过 JavaScript,我在这些字段中输入数据并发布表单。
在控制器上,我收到了关于该实体模型实例的发布数据,但只有一个属性除外。检查(用手表)Request.Form
,该属性就在那里,具有正确的名称和值。
会发生什么?
这是一些代码:(查看)
<div id="dvHiddenFormularioPacientePesquisa" style="display:none;">
@using (Html.BeginForm("ParticipacaoPaciente", "RealizacaoPesquisa", FormMethod.Post, new { @id = "frmPacientePesquisa" }))
{
PacientePesquisa PacientePesquisa;
if (Model.PacientePesquisa != null) { PacientePesquisa = Model.PacientePesquisa; }
else
{
PacientePesquisa = new PacientePesquisa();
PacientePesquisa.IDPesquisa = Model.Pesquisa.IDPesquisa;
PacientePesquisa.NRProntuario = Model.Paciente.NRProntuario;
}
@Html.HiddenFor(paciente => PacientePesquisa.IDPacientePesquisa)
@Html.HiddenFor(paciente => PacientePesquisa.IDPesquisa)
@Html.HiddenFor(paciente => PacientePesquisa.NRProntuario)
@Html.HiddenFor(paciente => PacientePesquisa.CodSituacaoPacientePesquisa)
@Html.HiddenFor(paciente => PacientePesquisa.IDMotivoExclusaoIndividuo)
@Html.HiddenFor(paciente => PacientePesquisa.ObsMotivoExclusao)
}
</div>
(JS动作)
$('#PacientePesquisa_CodSituacaoPacientePesquisa').val('A'); //Situação do Paciente-Pesquisa: (A)tivo
$('#PacientePesquisa_IDMotivoExclusaoIndividuo').val('');
$('#PacientePesquisa_ObsMotivoExclusao').val('');
$('#frmPacientePesquisa').submit();
return true;
(控制器)
[HttpPost]
public ActionResult ParticipacaoPaciente(PacientePesquisa pacPesq)
{
try
{
if (pacPesq.IDPacientePesquisa <= 0)
{
pacPesq.IDUsuario = this.LoggedUser().IDUsuario;
pacPesq.DataCriacao = DateTime.Now;
}
//Limpeza dos erros de validação prévios
foreach (var modelValue in ModelState.Values)
{
modelValue.Errors.Clear();
}
//Re-validação do modelo
ValidateModel(pacPesq); //<== Error here, due to pacPesq.CodSituacaoPacientePesquisa == null, when the posted data value for this attribute is "A"
编辑:
(该字段的实体定义)
public string CodSituacaoPacientePesquisa { get; set; } /* "A" = Ativo / "E" = Excluído */
(观看“Request.Form”)
Request.Form
{
PacientePesquisa.IDPacientePesquisa=0
PacientePesquisa.IDPesquisa=1
PacientePesquisa.NRProntuario=0000009903
PacientePesquisa.CodSituacaoPacientePesquisa=A
PacientePesquisa.IDMotivoExclusaoIndividuo=
PacientePesquisa.ObsMotivoExclusao=
} System.Collections.Specialized.NameValueCollection {System.Web.HttpValueCollection}