【问题标题】:c# asp.net mvc One Button to submit data from multiple forms on one viewc# asp.net mvc One Button 在一个视图上提交来自多个表单的数据
【发布时间】:2022-01-18 18:42:24
【问题描述】:

我有一个视图,其中有 2 个表单。我希望在这些表单之外有一个按钮,可以一次性提交来自两个表单的数据。我可以使用每个表单中的按钮提交数据。有没有办法按下两个表单之外的按钮,可以访问两个表单中的数据以发送到数据库?我的视图代码如下。 FORM1 按钮保存第一个表单数据,FORM2 保存第二个表单数据,但我希望 FORM-ALL 按钮在似乎无法访问任何表单数据时保存两个表单的数据。 请注意,IsPost 方法试图将全局变量作为表单文本框之一,但它似乎不起作用,可能是因为 FORM-ALL 按钮没有发布帖子?

@model IEnumerable<App22.Models.Cust>
@{
ViewBag.Title = "Customer Details";
}

@{
if (IsPost)
{
    GlobalVar.GlobCustName2 = Request.Form["B2CustName"];

    <text>
        You entered:
        <br />
        @GlobalVar.GlobCustName2
        <br />
    </text>
}
}


<h2>@ViewBag.Title.</h2>

<header>
</header>
<meta name="viewport" content="width=device-width" />
<title>CustViewy</title>

<html>
<head>
</head>

<style>
th, td {
    padding: 5px;
}
</style>

<body>
<p>

</p>
<div class="row">
    <div class="col-md-4">
        <p>
            <button style="background-color:blue" type="button" name="tree" class="btn btn- 
 primary" onclick="location.href='@Url.Action("Index","Cust1")'">
                BACK &raquo;
            </button>

            <button form="CustForm" style="background-color:red" type="submit" name="tree2" 
class="btn btn-primary">
                FORM1 &raquo;
            </button>

            <button form="CustForm2" style="background-color:red" type="submit" name="tree3" 
 class="btn btn-primary">
                FORM2 &raquo;
            </button>

            <button style="background-color:red" formmethod="post" type="submit" name="tree4" 
class="btn btn-primary" onclick="location.href='@Url.Action("SaveCustD","CustView")'">
                FORM-ALL &raquo;
            </button>

            @*<input type="submit" form="CustForm" />

                <input type="submit" form="CustForm2" />*@
        </p>


    </div>
</div>

<form id="CustForm" method="post" action="/CustView/SaveCustB">
    <legend>Customer Details</legend>
    <table>

        @foreach (var item in Model)
        {

            <tr>
                <td>
                    <label for="genre">CustID:</label>
                </td>
                <td>
                    <input type="text" name="1CustID" value="@Html.DisplayFor(modelItem => 
item.CustID)" readonly="readonly" />
                </td>
            </tr>
            <tr>
                <td>
                    <label for="genre">CustName:</label>
                </td>
                <td>
                    <input type="text" name="2CustName" value="@Html.DisplayFor(modelItem => 
item.CustName)" />
                </td>
            </tr>
            <td>
                <label for="genre">Cust Notes:</label>
            </td>
            <td>
                <input type="text" name="3CustNotes" value="@Html.DisplayFor(modelItem => 
 item.CustNotes)" />
            </td>
            <tr>
                <td></td>
                <td>
                    <input type="submit" name="action:Save1" value="Save" />
                </td>
                <td>
                </td>
            </tr>
        }
    </table>
</form>

<form id="CustForm2" method="post" action="/CustView/SaveCustC">
    <legend>Customer Details</legend>
    <table>

        @foreach (var item in Model)
        {

            <tr>
                <td>
                    <label for="genre">CustID:</label>
                </td>
                <td>
                    <input type="text" name="B1CustID" value="@Html.DisplayFor(modelItem => 
 item.CustID)" readonly="readonly" />
                </td>
            </tr>
            <tr>
                <td>
                    <label for="genre">CustName:</label>
                </td>
                <td>
                    <input type="text" name="B2CustName" value="@Html.DisplayFor(modelItem => 
 item.CustName)" />
                </td>
            </tr>
            <td>
                <label for="genre">Cust Notes:</label>
            </td>
            <td>
                <input type="text" name="B3CustNotes" value="@Html.DisplayFor(modelItem => 
 item.CustNotes)" />
            </td>
            <tr>
                <td></td>
                <td>
                    <input type="submit" name="action:Save1" value="Save" />
                </td>
                <td>
                </td>
            </tr>
        }
    </table>
</form>
</body>
</html>

【问题讨论】:

  • 您一次只能使用标准方法提交一个表单,而无需使用 javascript。这是因为表单提交事件遵循它发出的请求。您可以使用 javascript 来构造您的对象并使用表单值填充它,然后使用 AJAX 执行一个发布请求。

标签: c# asp.net-mvc


【解决方案1】:

您必须按照一些步骤来满足您的要求。 1->创建一个通用模型 Cust 包括其他表单类,如(Form1 和 Form2)。 2->如果您的表单以一种方法提交或需要多种方法,则在页面开始时仅使用一个表单,然后在每个表单字段中使用 form-name='form-id' 并为每个表单提供 ID 并在最后一个表单提交触发其他表单点击事件。

【讨论】:

  • 谢谢阿斯兰。你说“在最后一个表单提交触发其他表单点击事件”。我知道,在数据表单之外有一个按钮可以在每个数据表单上执行单击事件。但是我该怎么做,你提供一个代码示例吗?
猜你喜欢
  • 1970-01-01
  • 2021-01-10
  • 2014-08-15
  • 2018-01-06
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多