2

非表示のフォームと特定のエンティティ モデルのすべてのフィールドでレンダリングされるビューがあります。ある時点で、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}
4

1 に答える 1