2015-09-25 56 views
1

我有一個搜索表單。參數通過ajax請求發送到控制器。如果我的搜索有結果,我想重定向到另一頁並填寫給定的參數。 失敗的第一件事是重定向到另一頁。我在調試器中看到調用了正確的操作,但結果我只能看到默認頁面。如何重定向到同一控制器的索引頁

System.Web.Routing.RouteValueDictionary param = new System.Web.Routing.RouteValueDictionary(); 
//Result is evaluated before 
//AjaxResult is wrapper class to display a "successful"/"error" message 
if (ret.Data is AjaxResult) 
{ 
    return ret; 
} 
else 
{ 
    foreach (string p in form.AllKeys) 
    { 
     if (form.IsSet(p)) 
     { 
      //ViewData.Add(new KeyValuePair<string,object>(p, form.Get(p))); 
      param.Add(p, form.Get(p)); 
     } 
    } 
    //return Redirect(Url.Action("Index", param)); //previous try 
    //return Redirect("~/Preise/Index"); //previous try 
    return RedirectToAction("Index", param); 
} 

因此,即使第二次嘗試沒有參數導致默認頁面,而不是「Preise/Index」我做錯了什麼?

+4

你正在打一個ajax電話。 Ajax調用不重定向(ajax的全部要點保持在同一頁) –

回答

3

你不能這樣做,因爲它是一個AJAX請求。只需返回參數並在響應處理程序中執行重定向客戶端。

+0

感謝您給我一個提示。由於缺少時間,我返回了Request.URI並將其設置爲新位置。這也適用於我。但現在我更喜歡免費的網址。但我認爲這是另一個問題。 –