Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Ajax调用Post操作(重定向问题)_C#_Ajax_Asp.net Mvc 5 - Fatal编程技术网

C# 使用Ajax调用Post操作(重定向问题)

C# 使用Ajax调用Post操作(重定向问题),c#,ajax,asp.net-mvc-5,C#,Ajax,Asp.net Mvc 5,我想使用Ajax调用C#action,我的问题是在我尝试的函数成功后如何将我的操作重定向到结果页面: $.ajax({ type: 'Get', url: "/OffreLocation/SearchOffer", data: { quartier: Quartier, superficieMin: SuperficieMin, superficieMax: Superfi

我想使用Ajax调用C#action,我的问题是在我尝试的函数成功后如何将我的操作重定向到结果页面:

  $.ajax({
        type: 'Get',
        url: "/OffreLocation/SearchOffer",
        data: {
            quartier: Quartier,
            superficieMin: SuperficieMin,
            superficieMax: SuperficieMax,
            budgetMin: BudgetMin,
            budgetMax: BudgetMax
              },           
        success: function (response) {
            window.location.href = "/Home/SearchResult";
        }

    });
但它会返回实际视图

我的行动:

 [HttpGet]
    public ActionResult SearchOffer(int quartier, int superficieMin, int superficieMax, int budgetMin, int budgetMax)
    {


         List<OffreLocation> SearchedOffer = db.PublicationSet.OfType<OffreLocation>().Where( model => model.QuartierQuartier_Id == quartier && model.OffreLocation_Superficie > superficieMin && model.OffreLocation_Superficie < superficieMax).ToList();
         return RedirectToAction("SearchResult", "Home", SearchedOffer);

    }
[HttpGet]
公共行动结果搜索报价(整数四分位数、整数超高分位数、整数超高分位数、整数预算分钟、整数预算最高)
{
列出SearchedOffer=db.PublicationSet.OfType()。其中(model=>model.QuartierQuartier\u Id==quartier和model.OffreLocation\u supericie>supericiemin和model.OffreLocation\u supericie

任何帮助

我也阅读了您的评论,并得出一个假设,您尝试使用AJAX,结果需要使用新记录进行更新,首先,在适当的编码标准中,如果您需要像使用
return RedirectToAction(“SearchResult”、“Home”、SearchedOffer)一样进行页面刷新,则不能使用AJAX
当您不需要重新加载页面,但只需要刷新页面的一部分(例如:网格、下拉列表等)时,必须使用AJAX。
这很容易,试着像下面这样重新编写代码

success: function(response) {
alert(response);
$("#SomeDiv").html(response);     
  }
像上面一样,我已经绑定到一个普通的div元素,但是您可以在任何需要的地方绑定数据(JqGrid、DataTable、div等等),但是在您必须卸载以前的数据之前。 如果您使用Datatable,请检查此链接 如果是JQgrid,请查看@ 或者,如果您在任何其他第三方控件中绑定数据,您必须自己查看,以使用新的搜索数据刷新数据。
希望这有帮助….

如果您想重定向浏览器,为什么首先要使用AJAX?使用AJAX时,“重定向”需要发生在客户端,而不是服务器上。看起来你两者都在做。客户端是否未按预期重定向?是否调用了
success
处理程序?因此,如果需要在客户端执行重定向,我只需要保留window.location.href=“/Home/SearchResult”;在ajax方法中,使用void操作而不是ActionResult!但是如何在window.location.href=“/Home/SearchResult”中传递从操作方法返回的数据!通常,对于AJAX调用,当您需要将数据返回到客户端时,您会将其作为JSON返回(在控制器中使用
returnJSON(someObject)
)。因此,如果重定向需要在查询字符串中包含信息,那么您可以将该信息作为JSON返回,并在
success
处理程序中从中构建查询字符串。不过,同样,如果您正在执行重定向,那么这里就不需要AJAX。只需将表单提交到
SearchOffer
并从服务器端代码重定向,就可以用更少的步骤和复杂性完成同样的事情。