有谁知道我需要让ajax.beginform
在我的MVC4项目中工作?我将jQuery库更新到版本2,我已经包含了jquery.validate.js
和jquery.validate.unobtrusive.js
,但表单仍然发布到新页面而不仅仅是更新UpdateTargetId
元素
我有一个谷歌,很多人似乎遇到了一个名为Microsoft.jQuery.Unobtrusive.Ajax
的脚本问题,但这不在我的项目中。我是否需要安装此功能,如果需要,我是否需要在live
上进行查找和替换,以便它使用on
代替?
这是表格代码:
@using (Ajax.BeginForm("AddImage", "Quote", FormMethod.Post, new AjaxOptions { UpdateTargetId = "Files" }, new { enctype = "multipart/form-data" }))
{
}
这会发布到引用控制器的addimage操作,所有这一切都是在屏幕上写出一个字符串(应该出现在Files
div中)但不是做一个ajax调用它实际上是在引用/ AddImage页面
答案 0 :(得分:1)
最后我要做的就是通过nuget下载最新的jquery.unobtrusive-ajax.js
。这已经更新,因此它适用于jquery 2
答案 1 :(得分:0)
首先,您在AjaxOptions中缺少InsertionMode。
其次,您似乎正在尝试使用Ajax表单上传文件?你将无法做到。例如,请参阅this post。
最后,Ajax.BeginForm正在使用jQuery.live()函数,该函数已经removed as of jQuery version 1.9。有关详细信息,请参阅this question。
您应该安装jQuery Migrate Plugin,这将恢复已弃用的功能。这至少会恢复您的Ajax表单功能。唉,它无法帮助您通过Ajax上传文件。但这是一个不同的话题。