如果使用enctype =“multipart / form-data”,则AJAX.BEGINFORM OnSuccess不会触发

时间:2018-05-31 09:31:53

标签: model-view-controller enctype

我相信你很好,目前我在尝试使用OnSuccess(或任何其他后期操作)时遇到问题,如果我使用以下代码:

(查看)

using(Ajax.BeginForm("ManualEntryCreate", null, new AjaxOptions
{
  HttpMethod = "Post",
  OnSuccess = "alert('test');"}, new { enctype = "multipart/form-data"}))
{
  etc

一切正常,所选文件将传递给控制器​​中的方法(我实际上并没有上传文件,只是将选择的文件名传递到数据库中)

然而,在返回时OnSuccess(或任何例如OnComplete)没有触发。

如果我删除

new { enctype = "multipart/form-data"}

OnSuccess有效但我需要将包含所选文件的变量传递给方法,因此我需要添加enctype组件。我已经检查了网络/控制台日志,并且正在发回JSON响应没问题。只是任何On'X'完成后事件都没有解雇。

这只是Ajax.BeginForm的限制还是我错过了一些基本的东西?任何建议表示赞赏!

1 个答案:

答案 0 :(得分:0)

我的不好 - 我使用Windows.EventListener截获了请求(遗留代码),阻止了默认行为的发生。它只在我尝试提交多部分表单时才会激活。