问题描述
我创建了一个按钮来避免生成具有相同值的双数,当一个用户点击它时我会创建一个按钮,向他和其他用户显示值正在保存过程中,这样我就可以避免出现双值。
但是当我尝试在服务器端控制器上捕获它时,它显示在 Inspect element->Network->Status 302 -> POST -> FILE (GenerateCodes)
中。
@using (Html.BeginForm("GenerateCodes","Codes",FormMethod.Post))
{
<div class="Box-header">
<div class="row">
<div class="col-md-3 text-right">
<!--disable button for about 3 second after click button-->
<button type="submit" id="ok" class="btn btn-primary btn-lg" onclick="return displayProgressMessage(this,'Saving...');">Generate</button>
<script>
function displayProgressMessage(ctl,msg) {
$(ctl).prop("disabled",true);
$(ctl).text(msg);
return true;
}
</script>
</div>
</div>
</div>
}
我的 Codes.cs 控制器。
protected void displayProgressMessage(object sender,EventArgs e)
{
//Something
Response.Write("DD");
}
解决方法
控制器中的方法名称需要为“GenerateCodes”以匹配 Html.BeginForm() 辅助方法中的操作。此外,该方法中的参数需要是 .cshtml 视图中的模型,或者如果您没有使用视图中的模型,则不需要参数。最后,您需要在控制器中的方法上使用 HttpPost 属性,以使其知道您正在向该方法发布表单。
[HttpPost]
public IActionResult GenerateCodes()
{
//Do Something
}