2

ドロップダウンに基づいて、同じdivにさまざまなフォームを読み込んでいます...これ以外のすべてのフォームは、JQueryを介して送信するように指示されたときに機能するようです...誰かが理由を知っていますか?ありがとう....

@using (Html.BeginForm("SaveInMemoryPayment", "Payment", FormMethod.Post))
{
@Html.ValidationSummary(true)


<p> Payment type: Cash. No further action needed. Plase click Save to finish. </p>


<input type="hidden" name="PaymentTypeID" id="paymentTypeIDHidden" value="@Model.PaymentTypeID" />
<input type="hidden" name="DonationID" id="donationIDHidden" value="@Model.DonationID" />
<input type="hidden" name="PaymentDate" id="paymentDateHidden" value="@Model.PaymentDate" />
<input type="hidden" name="PaymentAmount" id="paymentAmountHidden" value="@Model.PaymentAmount" /> 

}

これが機能するフォームです...

@using (Html.BeginForm("SaveInMemoryPayment", "Payment", FormMethod.Post))
{
@Html.ValidationSummary(true)

<p>Check information:</p>

<div class="editor-label" id="check1">
        @Html.LabelFor(model => model.CheckNumber)
    </div>
    <div class="editor-field" id="check1.2">
        @Html.EditorFor(model => model.CheckNumber)
        @Html.ValidationMessageFor(model => model.CheckNumber)
    </div>


@Html.HiddenFor(x => x.PaymentTypeID)
@Html.HiddenFor(x => x.DonationID)
@Html.HiddenFor(x => x.PaymentDate)
@Html.HiddenFor(x => x.PaymentAmount)


}

彼らは両方とも同じ場所に投稿します...しかし、最初のものは投稿しません。これらのフォームは、保存ボタンのある親ビューのdivに読み込まれます...そのボタンをクリックするとダイアログが開き、クリックすると[OK]ボタンが表示されます:$('#paymentSection2')。find('form') 。参加する();

4

2 に答える 2

3

なんで使ってないの@Html.HiddenFor()?おそらくそれは拘束力のある問題であり、MVCはあなたの入力名とそれが期待する入力名を区別することができません。(たとえば、入力名としてではMyModel.PaymentIDなく、期待している可能性があります)。PaymentID

次のことを試してください。

@using (Html.BeginForm("SaveInMemoryPayment", "Payment", FormMethod.Post))
{
    @Html.ValidationSummary(true)

    <p> Payment type: Cash. No further action needed. Plase click Save to finish. </p>

    @Html.HiddenFor(x => x.PaymentTypeID)
    @Html.HiddenFor(x => x.DonationID)
    @Html.HiddenFor(x => x.PaymentDate)
    @Html.HiddenFor(x => x.PaymentAmount)
}
于 2012-05-15T19:17:21.147 に答える
2

はい、非表示のフィールドのみを含むフォームを送信できます。

于 2012-05-15T19:18:36.940 に答える