尝试通过 Ajax.BeginForm 更新对象上的属性,但提交后对象上的所有其他属性都为 null



我正在尝试使用以下剃须刀代码更新付款通知电子邮件,并且仅更新付款通知电子邮件:

@using (Ajax.BeginForm("Save", "PaymentLandingPage", new AjaxOptions
{
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace,
}))
{
<table class="PEmailFields">
<tr>
<td>
<div style="float:left;">
<ul style="list-style-type: none;">
<li><span id="PEmaillbl">Payment Notification Email:</span></li>
<li><br /></li>
</ul>
</div>
<div style="float:right;">
<ul style="list-style-type: none;">
@Html.HiddenFor(m => m.PrimaryNamedInsured)
<li>@Html.TextBoxFor(m => m.PaymentNotificationEmail, new { @id = "PEmailtxbx", placeholder = "Example: ppp@test.com", maxlength = "100", style = "margin-left:25px;min-width:530px;", Value = Model.PrimaryNamedInsured.PrimaryEmail })</li>
<li><span id="PEmaildsclmr" data-PEmailValue="@Model.PaymentNotificationEmail"><i style="margin-left:190px;font-size:small;">* This email address is used for payment notifications.</i></span></li>
</ul>
</div>
</td>
</tr>
<tr>
<td></td>
</tr>
</table>
<input style="margin-left:35%;" type="submit" value="Save Email" />
}

我遇到的问题是,当我到达控制器时,对象只有付款通知电子邮件。对象上的其他所有内容均为 Null。

如何更新付款通知电子邮件而不会丢失已在@Model中的信息?

经过大量的研究和故障排除,我们重新设计了整个事情,这个问题变得无关紧要。 最终的答案是我们一开始的设计很糟糕。

最新更新