我在我的項目中有一個upload.ascx
。它將在Jquery Popup中加載。防止MVC表單使用Javascript提交功能
upload.ascx
包含File Upload
對照。文件上傳控件將上傳.xlsx and .xls
文件。我已經添加了Java script
函數來做這個驗證(防止不必要的文件上傳)。
Onchange of FileUpload
控制和Onclick of Submit button
相同的驗證功能將被調用。
文件上傳驗證功能正在爲兩種呼叫工作。如果用戶點擊提交按鈕,相同的功能被調用並且工作正常。
我的問題是:在我的驗證功能,我寫了return false
。顯示警報消息後,頁面將被重定向到某個URL(localhost/Admin/Authorization/AcceptFile.aspx
)。 AcceptFile
是我的ActionResult名稱。它不應該發生。函數返回False。但表單被重定向到URL以上爲什麼。?
如果錯誤的文件(它是正確的),我在我的操作結果中保留了調試器。如果其正確的文件索引文件將被加載成功消息(動作結果正在調用並工作正常)。 。
我懷疑MVC表格。如果錯誤的文件被上傳,重定向發生在沒有調用Action Result的情況下,應該停止。
<% using (Html.BeginForm("AcceptFile", "Authorization", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
我的JavaScript函數:
function checkfile(sender) {
var validExts = new Array(".xlsx", ".xls");
var fileExt = sender.value;
var strValue = false;
fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
if (validExts.indexOf(fileExt) < 0) {
ShowMessage(-1, "Invalid file selected, valid files are .xlsx and .xls types.");
strValue = false;
}
else {
strValue = true;
}
return strValue;
}
我upload.ascx代碼:
<div>
<% using (Html.BeginForm("AcceptFile", "Authorization", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<input type="file" id="fileAuthorization" name="fileAuthorization" onchange="checkfile(this);" />
<input type="submit" id="btnSave" name="btnSave" value="Upload" onclick="javascript:return checkfile(document.getElementById('fileAuthorization'))" />
<%} %>
</div>
只需gr8 !!它解決了我的問題,,,謝謝花花公子 (刪除onclick從輸入類型的按鈕,並添加在@ Html.BeginForm onsubmit) –
很高興聽到它的幫助...它正確的我解釋說,它是我的早先的代碼。 :)謝謝老兄。:) – RajeshKdev
謝謝你。這對我幫助很大。 –