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

时间:2014-07-02 13:09:49

标签: c# ajax asp.net-mvc-5

我想用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";
        }

    });

但它返回实际的视图!!

我的行动:

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

    }

任何帮助!

1 个答案:

答案 0 :(得分:0)

我也已经阅读了你的评论并且假设你试图使用AJAX,结果需要用新记录更新,首先在正确的编码标准中,如果你需要像页面刷新那样你就不能使用AJAX你做return RedirectToAction("SearchResult", "Home", SearchedOffer); 当您不需要重新加载页面时,您必须使用AJAX,但只需要刷新一部分页面(EX:网格,下拉列表等)。 它非常简单,尝试重写您的代码,如下所示

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

如上所述,我已绑定到一个普通的div元素,但您可以将数据绑定到任何您想要的地方(JqGrid,DataTable,Div等),但必须先卸载以前的数据。 如果您使用Datatable,请查看此链接Data Table Refrsh with new data 如果JQgrid请看@ JqGrid Auto Refresh 或者如果您在任何其他第三方控件中绑定数据,则必须查看自己以使用新搜索数据刷新该数据。 希望这会有所帮助.....