MVC4 Ajax jQuery 2

时间:2013-07-12 15:04:42

标签: ajax asp.net-mvc-4 razor asp.net-ajax

有谁知道我需要让ajax.beginform在我的MVC4项目中工作?我将jQuery库更新到版本2,我已经包含了jquery.validate.jsjquery.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页面

2 个答案:

答案 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上传文件。但这是一个不同的话题。