当我使用Request.IsAjaxRequest()时。我无法返回view()。请检查以下代码。 这是行动。
public ActionResult Index()
{
if (!Request.IsAjaxRequest()) {
return View("ajexview");
}
return view("About");
}
这是视图
<script>
$(function () {
$("button").click(function () {
var car = { Make: 'Audi', Model: 'A4 Avant', Color: 'Black', Registered: 2013 };
$.ajax({
type: "POST",
url: "/home/index/",
data: car,
datatype: "html",
success: function (data) {
$('#result').html(data);
}
});
});
});
<button>Click me</button>
当我发帖关于视图无法返回时
答案 0 :(得分:0)
首先,我不确定您的索引操作是否会受到您的ajax调用的影响。你正在做一个针对get动作的帖子。要使Request.IsAjaxRequest()按预期工作,请尝试创建另一个控制器操作并使用HttpPost属性标记它,如下所示,
[HttpPost]
public ActionResult Index(Car car)
{
if (!Request.IsAjaxRequest()) {
return PartialView("ajexview");
}
return View("About");
}
另请注意,在
if (!Request.IsAjaxRequest())
区块中,我将返回&#34; ajexview&#34;作为PartialView
。
或者如果您打算点击获取索引操作,那么您将需要执行ajax&#39; get&#39;请求改为
$.ajax({
type: "GET",
url: "/home/index/",
success: function (data) {
$('#result').html(data);
}
});
答案 1 :(得分:0)
确保在正确的位置渲染脚本并在_layout.cshtml中订购:
e.g。在顶部: ...
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
......和底部:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
@Styles.Render("~/Content/datatables")
@Scripts.Render("~/bundles/datatables")
<!-- etc. -->
@RenderSection("scripts", required: false)
</body>
</html>
还要注意BundleConfig.cs的构建。