私のモデルに関連しないいくつかのフィールドを含むMVCフォームがあります。これらのフィールドにはユーザー提供のクレジットカード情報が含まれています。ユーザーがフォームに記入して[続行]をクリックすると、私は自分のコントローラーでクレジットカードによる検証を行います。クレジットカードによる取引が成功した場合は、他のモデル関連のフィールドに注意を払い、ユーザーを完了/確認ページに移動させます。そんなにうまくいく。MVCフォーム上の非モデル情報を維持する
しかし、クレジットカードの取引がうまくいかなかった場合、私は基本的に、私のモデルとは関係のないクレジットカードのフィールドであっても、すべてのフィールドが入力された同じページにユーザーを保ちたいと考えています。これは、フォーム上のすべてのフィールドが消去されるように見えるため、難しいことが分かりました。
何か助けていただければ幸いです。ここに私のフォームコントロールのカップルです:
<tr>
<td>ccFieldA:</td>
<td>
<%= Html.TextBox("ccFieldA") %>
</td>
<td>
<label id="ccFieldAError" runat="server"></label>
<%= Html.Hidden("hiddenFieldA") %>
</td>
</tr>
<tr>
<td>ccFieldB:</td>
<td><%= Html.TextBox("ccFieldB") %></td>
<td>
<label id="ccFieldBError" runat="server"></label>
<%= Html.Hidden("hiddenFieldB") %>
</td>
</tr>
その後、私のコントローラでは、私が提出フォーム上にこのような何かを:
if (CreditCardPassesValidation()) {
return RedirectToAction("NextPage", new { id = myID });
}
else {
return View(ThisSamePage);
}