Ajax.begin';不能正确地张贴
我有一个似乎无法满足的简单要求:我有一个产品页面。产品有供应商,供应商输入是带有自动完成的文本字段。如果用户输入了数据库中不存在的供应商,我需要添加它。要添加它,我在页面上有一个DIV,I.load()调用my/Vendor/Create controller方法。该方法的视图使用:Ajax.begin';不能正确地张贴,ajax,asp.net-mvc-3,post,razor,Ajax,Asp.net Mvc 3,Post,Razor,我有一个似乎无法满足的简单要求:我有一个产品页面。产品有供应商,供应商输入是带有自动完成的文本字段。如果用户输入了数据库中不存在的供应商,我需要添加它。要添加它,我在页面上有一个DIV,I.load()调用my/Vendor/Create controller方法。该方法的视图使用: @using (Ajax.BeginForm("Create", "Vendor", new AjaxOptions { UpdateTargetId = ViewBag.TargetId, H
@using (Ajax.BeginForm("Create", "Vendor", new AjaxOptions {
UpdateTargetId = ViewBag.TargetId,
HttpMethod = "Post",
OnSuccess="VendorCreated",
OnComplete="alert('success')"
})) {
它应该通过ajax发布我的表单,完成后调用Javascript。我遇到的问题是,在提交时,我的整个页面都会被刷新,这样当我开始使用/Product/Create时,我就会使用/Vendor/Create。此外,不会调用OnSuccess或OnComplete
我在这里做错了什么?请确保在页面中包含以下脚本:
jquery-1.5.1.js
jquery.unobtrusive-ajax.js
在web.config中启用了不引人注目的javascript:
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
哦。。。我懂了。我的项目有-1.4.4,我没有jquery.unobtrusive-ajax.js,但我有一个MicrosoftAjax.js和MicrosoftMvcAjax.js。。。它们是同一件事吗?我看了两个文件,但都不包含一个。。。一个相关的问题:我读到使用CDN是一件好事,但这意味着脚本文件夹中没有脚本。有没有一种方法可以让脚本看起来像是在您的项目中,但实际上它们只是从CDN中获取的?@ekkis,您可以安全地从ASP.NET MVC 3项目中删除MicrosoftJAX.js
和MicrosoftMvcAjax.js
。默认情况下,ASP.NET MVC 3使用jQuery。因此,只保留我在回答中提到的两个脚本(您可以用实际使用的版本替换jquery-1.5.1.js),并在web.config中启用不引人注目的javascript。