MVC Response.Redirect无法使用问号

时间:2014-06-09 20:43:48

标签: asp.net-mvc url-redirection response.redirect

我正在尝试从控制器重定向到另一个页面,代码是:

Response.Redirect("http://server1:8080/amj/servlet/inv/template/print.html?txt=ABC");

但重定向已完成此网址:

http://server1:8080/amj/servlet/inv/txt/ABC/template/print.html

如您所见,它将txt = ABC放在字符串...

的中间

如果我尝试使用没有问号的网址,则可以正常使用。

提前感谢您的帮助。

此致

卡洛斯。

2 个答案:

答案 0 :(得分:0)

查询字符串参数与路由设置中的一个路由匹配。

您可以使用RegisterRoutes方法中的routes.IgnoreRoute来解决特定页面/路径问题。

另一种选择是不使用Response.Redirect而是使用Controller / Action路由模型。这将是首选方法,您可以在this文章中详细了解原因。

答案 1 :(得分:0)

您可以尝试以下方法。控制器的ActionResult可以返回Content类型,其中包含重定向的链接。

public ActionResult RedirectPage(long param)
{
     string url = "http://server1:8080/amj/servlet/inv/template/print.html?id=" + param;
     return Content("<html><script>window.location.href = '" + url + "';</script></html>");
}