C# Request.IsAjaxRequest未运行mvc

C# Request.IsAjaxRequest未运行mvc,c#,ajax,model-view-controller,C#,Ajax,Model View Controller,当我使用Request.IsAjaxRequest()时。我无法返回视图()。请检查下面的代码。 这就是行动 public ActionResult Index() { if (!Request.IsAjaxRequest()) { return View("ajexview"); } return view("About"); } 这是我的看法 <script> $(f

当我使用Request.IsAjaxRequest()时。我无法返回视图()。请检查下面的代码。 这就是行动

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);
            }
        });
    });
});

$(函数(){
$(“按钮”)。单击(函数(){
var汽车={品牌:奥迪,车型:A4前卫,颜色:黑色,注册日期:2013};
$.ajax({
类型:“POST”,
url:“/home/index/”,
数据:汽车,
数据类型:“html”,
成功:功能(数据){
$('#result').html(数据);
}
});
});
});

点击我

当我发布关于视图的帖子时,首先无法返回,我不确定您的索引操作是否会受到ajax调用的影响。你正在做一个针对get操作的帖子。要使Request.IsAjaxRequest()按预期工作,请尝试创建另一个控制器操作并使用HttpPost属性标记它,如下所示:

[HttpPost]
public ActionResult Index(Car car)
{
   if (!Request.IsAjaxRequest()) {
        return PartialView("ajexview");            
    }
    return View("About");
}
还要注意,在
if(!Request.IsAjaxRequest())
块中,我将以
PartialView
的形式返回“ajexview”

或者,如果您的意图是点击getindex操作,那么您将需要执行ajax“get”请求,而不是像

$.ajax({
        type: "GET",
        url: "/home/index/",
        success: function (data) {
        $('#result').html(data);
    }
});

确保在_layout.cshtml中以正确的位置和顺序呈现脚本:

e、 g.在顶部:

@ViewBag.Title
@style.Render(“~/Content/css”)
@Scripts.Render(“~/bundles/modernizer”)
。。。下面是:

         @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>
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“~/bundles/jqueryval”)
@Scripts.Render(“~/bundles/bootstrap”)
@style.Render(“~/Content/datatables”)
@Scripts.Render(“~/bundles/datatables”)
@RenderSection(“脚本”,必需:false)

还要注意BundleConfig.cs的构造。

您应该在控制器中使用另一个操作来处理ajax请求。通常,当您发出ajax请求时,您会将其指向一个返回类似
JsonResult
的操作。查看此问题的控制器代码:
    <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>