我在 .Net 平台上使用 MVC 4,并且在我看来有以下 html。如您所见,名称相同,以区分进入控制器时按下哪个按钮以采取正确的操作。
<tr>
<td>
<input type="submit" name="submitbutton" id="btnRefresh" value='Refresh' />
</td>
@if (Model.ShowGeneratePDFBtn == true)
{
<td>
<input type="submit" name="submitbutton" id="btnGeneratePDF" value='Generate PDF' />
</td>
}
</tr>
但是,当按下第二个(“生成 PDF”)按钮时,我需要禁用它,以便用户在进程发生时无法再次按下它。如果我禁用它,它将不再作为控件出现在 html 中(这是可以理解的)。
这是js:
$('#btnGeneratePDF').click(function () {
DisableGeneratePDF();
});
function DisableGeneratePDF() {
$('#btnGeneratePDF').attr("disabled", true);
}
在控制器中,按下时按钮的值为 null 而不是“生成 PDF”,因此不会执行正确的操作。
这是控制器中的第一行:
[HttpPost]
public ActionResult ProcessForm(string submitbutton, ViewModelTemplate_Guarantors model, FormCollection collection)
这是视图中的第一行。我也尝试过使用 FormMethod.Post,但由于我不会转到另一个页面,因此 AjaxOption 会更有效。
@using (Html.BeginForm("ProcessForm", "Home", new AjaxOptions { HttpMethod = "POST" }))
当我禁用按钮时,如何成功地将“生成 PDF”值传递给控制器?