我想調用使用Ajax C#的動作,我的問題是如何將我試圖函數的研製成功後,我的行動,結果頁面重定向:使用Ajax調用POST操作(重定向問題)
$.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);
}
任何幫助!
如果你想重定向瀏覽器,爲什麼首先使用AJAX?當使用AJAX時,「重定向」需要在客戶機上進行,而不是在服務器上進行。看起來你正在做這兩件事。客戶是否不按預期重定向?是否調用了「成功」處理程序? – David
所以如果重定向需要發生在客戶端,我只需要保持window.location.href =「/ Home/SearchResult」;在ajax方法中使用ActionResult保證的void action!但是如何在window.location.href =「/ Home/SearchResult」中傳遞從action方法返回的數據! – 404NotFound
通常,當您需要將數據返回給客戶端時,您可以將它作爲JSON返回(在控制器中使用'return Json(someObject)')。因此,如果重定向需要在查詢字符串中包含信息,那麼您可以將該信息作爲JSON返回,並在'success'處理程序中從其構建查詢字符串。儘管如此,如果你正在執行重定向,那麼這裏就不需要AJAX了。只需將表單提交給'SearchOffer',並從服務器端代碼重定向即可完成同樣的任務,步驟更少,複雜性更低。 – David