非表示のフォームと特定のエンティティ モデルのすべてのフィールドでレンダリングされるビューがあります。ある時点で、JavaScript を介してこれらのフィールドにデータを入力し、フォームを投稿します。
コントローラーでは、1 つの属性のみを除いて、そのエンティティ モデルのインスタンスで投稿されたデータを受信しています。を(時計で)チェックするRequest.Form
と、属性は正しい名前と値でそこにあります。
何が起こっている可能性がありますか?
コードの一部を次に示します: (View)
<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}