2016-11-22 106 views
0

尽量避免使用属性disabled提交按钮点击多次提交,但点击它只是阻止按钮,没有任何反应。尝试添加id到Html.Begin形式,而是点击它给服务器应用程序错误,如:the parameters dictionary contains a null entry for parameter 'id' of non-nullable type System.Int32提交表单上的阻止按钮

@using (Html.BeginForm(MVC.Controller.MethodName(), FormMethod.Post, new { id = "submitFormId" })) 


<button class="btn btn-w-m btn-primary" type="button" id="submitButtonId" value="AddSmth" onclick="return validateForm(event)"> 
    <i class="fa fa-plus"></i>&nbsp;Add 
</button> 

和JS:

$("#submitButtonId").attr("disabled",true); 
$('#submitFormId').submit(); 
+1

http://stackoverflow.com/questions/926816/how-to-prevent-从提交的多次客户端 –

+1

@mplungjan不适合我 – Vitaliy

回答

0

创建另一种方法来防止多次点击按钮。只是说:

@{ Html.EnableClientValidation(); } 
@{ Html.EnableUnobtrusiveJavaScript(); } 

要将视图,并添加全局变量var isSubmited = false;后,再通过验证它:

if (isSubmited) e.PreventDefault(); 

. . . 

if ($('#submitFormId').valid()) { 
      isSubmited = true; 
     } 
0

该proplem是你想要在你的URL的id参数但你不提供一个。前面的例子:

https://example.com/controller/edit/1 
            ^^ missing 

1(id)缺失。

+0

它的奇怪,因为从方法控制器提交我收到的模型,而不是id – Vitaliy

+0

你试过从丹麦cmt? – manuzi1

0

,因为当你按下按钮时重新加载页面,以便禁止属性被删除

如果要设置这个条件,然后用ajax使页面不会被重新装入,然后按钮禁用是这是不可能的也正在工作

+0

嗯,我不能使用Ajax,因为我在这个视图上上传文件。我知道ajax不能使用文件,对吗? – Vitaliy

+0

ajax使用文件也 –

+0

check thi https://www.formget.com/ajax-image-upload-php/ –