Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在MVC表单上保留非模型信息_Asp.net Mvc_Credit Card_Asp.net Mvc 2 Validation - Fatal编程技术网

Asp.net mvc 在MVC表单上保留非模型信息

Asp.net mvc 在MVC表单上保留非模型信息,asp.net-mvc,credit-card,asp.net-mvc-2-validation,Asp.net Mvc,Credit Card,Asp.net Mvc 2 Validation,我有一个MVC表单,其中包含一些与我的模型无关的字段。这些字段包含用户提供的信用卡信息。一旦用户填写表单并单击“继续”,我将在控制器中执行一些信用卡验证。如果信用卡交易成功,我会关注其他与模型相关的字段,并将用户带到完成/确认页面。这么多很好用 但是,如果信用卡交易不成功,我基本上希望用户保持在同一页面上,所有字段仍然填写,即使这些信用卡字段与我的模型无关。这被证明是困难的,因为表单上的所有字段似乎都被删除了 感谢您的帮助。以下是我的几个表单控件: <tr> <td&g

我有一个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>

基本上,您需要为表单创建视图模型。在操作中,如果事务未成功,您可以将该视图模型再次传递回视图。在视图中,您需要像这样使用HTML助手

<%= Html.TextBoxFor(model=>model.ccFieldA) %>
public ActionResult YourAction(YourViewModel model)
    {
       if (CreditCardPassesValidation()) {
            return RedirectToAction("NextPage", new { id = myID });
       }
       else {
             return View(ThisSamePage,model);
       }
    }
public ActionResult YourAction(YourViewModel model)
    {
       if (CreditCardPassesValidation()) {
            return RedirectToAction("NextPage", new { id = myID });
       }
       else {
             return View(ThisSamePage,model);
       }
    }