Request.IsAjaxRequest()总是返回false
问题描述:
Request.IsAjaxRequest()
总是返回false
。我已经看到这被问了很多次,通常包括jquery.unobtrusive-ajax.min.js
修复这个,但无法找出什么是错的。我在我的脚本包中包含了jquery.unobtrusive-ajax.min.js
,我似乎找不到任何错误,为什么它返回false。我把一个断点,它的每一次Request.IsAjaxRequest()总是返回false
这里是我的代码跃过if(Request.IsAjaxRequest())
首页控制器
public ActionResult Index(string sortOrder)
{
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
using (var db = new ActorMovieDB())
{
var actors = from A in db.Actors
select A;
switch (sortOrder)
{
case "name_desc":
actors = actors.OrderByDescending(A => A.ActorName);
break;
case "Date":
actors = actors.OrderBy(A => A.DateOfBirth);
break;
case "awardsWon":
actors = actors.OrderByDescending(A => A.AwardsWon);
break;
default:
actors = actors.OrderBy(A => A.ActorName);
break;
}
if (Request.IsAjaxRequest())
{
return PartialView("_Actors", actors.ToList());
}
else
{
return View(actors.ToList());
}
}
}
我的索引视图
@Ajax.ActionLink("Awards Won","index",new { sortOrder = "Date" },
new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId="actorsdiv",
InsertionMode = InsertionMode.Replace},
new { @class = "btn btn-info" })
@Html.Partial("_Actors",Model)
<div class="jumbotron" id="actorsdiv" style="margin:100px;width:1150px">
@foreach (var item in Model)
{
<ul>
<li>
<img src="@item.ImageUrl" width="150" height="150" style="margin- />
<h4>Name: @item.ActorName</h4>
<p>Date of Birth: @item.DateOfBirth.ToShortDateString()</p>
<p>Awards Won: @item.AwardsWon</p>
</li>
</ul>
}
</div>
束配置
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/toastr.js",
"~/Scripts/bootstrap.js"
));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*",
"~/Scripts/jquery.unobtrusive-ajax.min.js"
));
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new StyleBundle("~/Content/css")
.Include("~/Content/bootstrap.css", "~/Content/toastr.css"
));
答
你在web.config中启用了不显眼的JavaScript吗?
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
Request.IsAjaxRequest()函数检查HTTP标头 “X-请求-用”:如果该值是 “XMLHttpRequest的” 返回true,否则为假。
你已经完成了 – user2790781 2014-11-22 14:16:26
检查你是否在脚本文件夹中找到了你需要的所有文件。当包中描述的文件之一丢失时,没有明确的通知,它只是不渲染它们。 – 2014-11-22 14:40:41