我有一个搜索表单。参数通过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”我做错了什么?
答案 0 :(得分:3)
你不能这样做因为它是一个AJAX请求。只需返回param并在响应处理程序中重定向客户端。