【发布时间】: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 »
</button>
<button form="CustForm" style="background-color:red" type="submit" name="tree2"
class="btn btn-primary">
FORM1 »
</button>
<button form="CustForm2" style="background-color:red" type="submit" name="tree3"
class="btn btn-primary">
FORM2 »
</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 »
</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