C# 我可以提交只包含隐藏字段的表单吗?

C# 我可以提交只包含隐藏字段的表单吗?,c#,asp.net-mvc-3,forms,post,C#,Asp.net Mvc 3,Forms,Post,我正在将不同的表单加载到同一个div中,基于一个下拉列表。。。当他们被告知通过JQuery提交时,所有其他人似乎都能工作,除了这个。。。有人知道为什么吗?谢谢 @using (Html.BeginForm("SaveInMemoryPayment", "Payment", FormMethod.Post)) { @Html.ValidationSummary(true) <p> Payment type: Cash. No further action needed. Plase

我正在将不同的表单加载到同一个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" /> 

}
@使用(Html.BeginForm(“SaveInMemoryPayment”,“Payment”,FormMethod.Post))
{
@Html.ValidationSummary(true)
付款类型:现金。无需进一步操作。请单击“保存”完成

}
这是一个有效的表格

@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)


}
@使用(Html.BeginForm(“SaveInMemoryPayment”,“Payment”,FormMethod.Post))
{
@Html.ValidationSummary(true)
检查信息:

@LabelFor(model=>model.CheckNumber) @EditorFor(model=>model.CheckNumber) @Html.ValidationMessageFor(model=>model.CheckNumber) @Html.HiddenFor(x=>x.PaymentTypeID) @Html.HiddenFor(x=>x.DonationID) @Html.HiddenFor(x=>x.PaymentDate) @Html.HiddenFor(x=>x.PaymentAmount) }
他们都回了同一个地方。。。但第一个不会。这些表单加载到父视图中的一个div中,父视图中有一个save按钮。。。该按钮将打开一个对话框,其中有一个“确定”按钮,单击该按钮:$(“#paymentSection2”).find('form').submit()

你为什么不使用?很可能这是一个绑定问题,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)
}
@使用(Html.BeginForm(“SaveInMemoryPayment”,“Payment”,FormMethod.Post))
{
@Html.ValidationSummary(true)
付款类型:现金。无需进一步操作。请单击“保存”完成

@Html.HiddenFor(x=>x.PaymentTypeID) @Html.HiddenFor(x=>x.DonationID) @Html.HiddenFor(x=>x.PaymentDate) @Html.HiddenFor(x=>x.PaymentAmount) }
是的,您可以提交只包含隐藏字段的表单。

为什么不使用
@Html.HiddenFor()
?@Brad:这有什么关系?您能定义“不起作用”吗?要回答您的问题,是的,您可以有一个只包含隐藏字段的表单。@scottm我在我的问题中添加了更多的细节