html - 在表单中调用超过 1 个操作
问题描述
我正在对客户端 API 进行一些更改,其中包括一些表单验证和内容。
我正在尝试为表单设置超过 1 个提交句柄,因为我有 2 个具有不同操作的按钮,它们将整个表单作为参数,但我无法在互联网上阅读有关多个处理程序的内容来实现它。
这是我到目前为止所拥有的
@using (Html.BeginForm("ValidarFormulario", "Cotacao", FormMethod.Post, new { id = "frm" }))
{
...
}
“ValidarFormulario”是必须由“提交”调用的主要方法,它可以工作,但我想要一个“保存”的新按钮,它将在单独的方法中执行其他操作
<a class="btn btn-primary" formaction="SalvarFormulario" value="SalvarFormulario" href='##'>Salvar</a>
我的 API 中有这两种方法,ValidarFormulario
并且SalvarFormulario
,如何通过 2 个不同的按钮将相同的新表单发布到两条路线?
解决方案
提交表单时有不同的方式来指示操作方法:
1. 表单内的提交按钮(默认行为):
这是最常见的场景,我们在表单中有一个提交按钮。当我们提交表单时,它是回发到表单的提交操作:
@using (Html.BeginForm("Enroll", "Home", FormMethod.Post))
{
<div class="form-group">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(model => model.Name, new {@class="form-control"})
</div>
// form is postback to /Home/Enroll
<input type="submit" value="Enroll" class="btn"/>
}
2.表单外提交按钮:
如果您的提交按钮在表单之外,您可以使用该form
属性来指示应该用于回发的表单:
@using (Html.BeginForm("Enroll", "Home", FormMethod.Post, new { id = "myFrom" }))
{
<div class="form-group">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(model => model.Name, new {@class="form-control"})
</div>
}
// submit button is outside the form, it would postback to form's postback action: /Home/Enroll
<input type="submit" value="Enroll (outside)" form="myFrom" class="btn"/>
3. 多个提交按钮,回发到不同的操作方法:
如果您有多个提交按钮,并且希望每个按钮回发到不同的操作,那么formaction
在您的按钮上使用属性:
@using (Html.BeginForm("Enroll", "Home", FormMethod.Post))
{
<div class="form-group">
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(model => model.Name, new {@class="form-control"})
</div>
// your main submit button will post back to: /Home/Enroll (default behavior)
<input type = "submit" value="Enroll" class="btn"/>
// your Delete button will post back to: /Home/Delete
<input type = "submit" value="Delete" formaction="@Url.Action("Delete")" formmethod="post" class="btn" />
}
推荐阅读
- python - 如何使用 Python 3 在 MacOS 上获取 RAM 制造商?
- angular - 如何使用 CoreUI 和 Amplify 为 Angular 配置路由和重定向?
- javascript - 将 Zig 编译为 wasm32-freestanding 时出错
- spring - @JsonManagedReference 和 @JsonBackReference 与 @JsonIdentityInfo
- typescript - 未调用嵌套的 FieldResolver
- cucumber - 在 cli 中使用标签运行的空手道测试
- python - 无法用 python 创建数独关卡
- maven - 不支持的 JavaFX 配置:使用 Maven 从“未命名模块”加载类
- c - 如何访问和修改函数中的字符串数组?
- javascript - 使用 Jquery 的不同 div 上的相同按钮