我正在嘗試使用超鏈接提交Ajax.BeginForm,而不是提交按鈕。我提交按鈕測試和動作識別通過測試Request.IsAjaxRequest基於出任阿賈克斯,但如果我嘗試以下IsAjaxRequest返回false:通過ActionLink提交Ajax.BeginForm
<a href="javascript:void(0)" onclick="javascript:document.forms[0].submit(); return false;">Update</a>
我正在嘗試使用超鏈接提交Ajax.BeginForm,而不是提交按鈕。我提交按鈕測試和動作識別通過測試Request.IsAjaxRequest基於出任阿賈克斯,但如果我嘗試以下IsAjaxRequest返回false:通過ActionLink提交Ajax.BeginForm
<a href="javascript:void(0)" onclick="javascript:document.forms[0].submit(); return false;">Update</a>
的形式掛到微軟的Ajax庫,這樣你就可以只是調用form.submit(),因爲有線AJAX事件沒有激活。您有幾種選擇:
對於第三個選項,而不是
onclick="javascript:document.forms[0].submit(); return false;"
嘗試
onclick="javascript:$('#form').onSubmit(); return false;"
但是我從來沒有用過它,所以我不知道它是否會起作用。你也可以看看here的解決方案,因爲它聽起來就像你正在努力完成的。
'unobtrusive-ajax.js'監聽表單提交事件 - 所以只需調用'form.submit' *應該*觸發Ajax腳本。 http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.js – McGarnagle
@McGarnagle,它並不總是奏效。在視圖內部,在意義上的form.submit()調用將起作用,但如果在JS文件中執行form.submit()並將目標對象定義爲unobtrusive-ajax.js不會觸發工作。 –
爲什麼不堅持提交按鈕? – hawkke
這是一個要求,但我找到了解決方法,我使用鏈接來觸發提交按鈕單擊。我有提交按鈕隱藏在頁面上。 – user1790300