VS2010 / .net4 / MVC3(MVC4有同样的问题)
我试图在我的项目中调用AJAX函数
@Ajax.ActionLink("Display ALL Cbms results", "All" , "Cbms", new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "divCbms",
InsertionMode = InsertionMode.Replace
})
控制器代码
public PartialViewResult All()
{
List<cbms> model = cbms.GetAllCBMSData();
return PartialView("_Cbms", model);
}
但不是替换目标div,而是加载一个全新的页面。
我在_layout页面中引用了不显眼的脚本
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
我在这里尝试了很多解决方案,但似乎都没有。 包括:
将jquery脚本更新到最新版本(1.11.1,因为我需要向后兼容旧的IE浏览器)
以下解决方案:
<appSettings>
<add key="webpages:Version" value="1.0.0.0" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
将HttpMethod类型更改为:
@Ajax.ActionLink("<text here>", "All" , "<view name here>", new AjaxOptions()
{
HttpMethod = "POST",
UpdateTargetId = "<div name here>",
InsertionMode = InsertionMode.Replace
})
我真的不知道如何解决这个问题,我也试过创建一个全新的项目(在MVC4中),但这给出了同样的问题。
检查请求会返回以下结果: Ajax request details
网络检查会返回以下结果: Ajax network header
浏览提供的网址(&#34; http://localhost:58339/Cbms/All?X-Requested-With=XMLHttpRequest&#34;)无问题。但这不是我想要的格式,因此无法解决我的问题。
答案 0 :(得分:0)
使用如下
@Ajax.ActionLink("Display ALL Cbms results", "All" , "Cbms", new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "divCbms",
InsertionMode = InsertionMode.Replace
})
更新
@Ajax.ActionLink("Display ALL Cbms results", "All" , "Cbms", new AjaxOptions
{
UpdateTargetId = "divCbms"
})
答案 1 :(得分:0)
我创建了一个不同的部分(具有不同的ID),并尝试更新该部分。 这很有效(严重)!!!
我完全被吹走了,这怎么可能?我真的不明白......