如何有条件地在表单标记中包含页面元素
本文关键字:包含页 元素 表单 有条件 | 更新日期: 2023-09-27 17:53:31
使用c#, Visual Studio 2012, MVC4 EF.
我有一个视图,当满足一个条件时,我想成为一个表单。我如何做到这一点,而不必在表单中有一个页面元素的部分,而在表单中没有相同的页面元素的另一个部分?
下面是我的条件代码:
@if (this.Model.ItemRequestStatusId == Portal.BusinessModel.Entities.ItemRequestStatusId.VendorRepReview
&& this.User.IsInRole("Vendor Rep"))
{
using (Html.BeginForm("Edit", "ItemRequest", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<button id="btn-data-integrity-final-review" class="btn btn-warning pull-right" type="submit">Vendor Review Complete</button>
}
}
else
{
@Html.ActionLink("Edit this request", "Edit", new { id = this.Model.Id }, new { @class = "btn btn-default pull-right" })
}
,然后在这个条件下面,我有页面元素/字段。但是它们目前不在表单中(只有提交按钮在表单中)。我想捕获POST中的字段
实现这一目标的唯一方法是使用javascript。例如,您可以订阅此表单的submit
事件,然后在提交之前将所有字段克隆到表单中:
$('#formId').submit(function() {
var inputFields = $('#someDivContainingYourInputFields').clone();
$(this).append(inputFields);
});
但是,更好的方法是简单地组织标记,使输入字段位于表单内部。您可以通过将表单定义移到条件之外并用它包装输入字段来实现这一点。只有submit按钮可以留在if中