2015-09-25 60 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并将其设置为新位置。这也适用于我。但现在我更喜欢免费的网址。但我认为这是另一个问题。 –