使用Ajax调用Post Action(重定向问题)

本文关键字:重定向 问题 Action Ajax 调用 Post 使用 | 更新日期: 2023-09-27 18:11:04

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

  $.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";
        }
    });

但是它返回实际的视图!!

my action:

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

使用Ajax调用Post Action(重定向问题)

我也读了你的评论,并得出一个假设,你试图使用AJAX的结果需要更新新的记录,首先在一个适当的编码标准,你不能使用AJAX,如果你需要一个页面刷新像你做的return RedirectToAction("SearchResult", "Home", SearchedOffer);当您不需要重新加载页面,但只有页面的一部分需要刷新(例如:网格、下拉框等)时,您必须使用AJAX。这很简单,试着像下面这样重写你的代码

success: function(response) {
alert(response);
$("#SomeDiv").html(response);     
  }

像上面一样,我已经绑定到一个普通的div元素,但是你可以绑定到任何你想要的数据(JqGrid, DataTable,div等),但是在你必须卸载之前的数据。如果您使用数据表,请检查此链接数据表刷新与新数据如果是JQgrid,请查看@ JQgrid自动刷新或者,如果你在任何其他第三方控件中绑定数据,你必须自己查看,用新的搜索数据进行刷新。希望对您有所帮助.....