0

我正在使用 ASP.NET MVC 3,我想接受 url 作为其中一项操作的参数。但是,对于以下示例,我收到“ HTTP Error 400 - Bad Request. ”错误。我该如何解决这个问题?

例子:

http://localhost:8343/http://google.com

全球.asax.cs:

routes.MapRoute(
                "Default", // Route name
                "{hostUrl}", // URL with parameters
                new { controller = "Home", action = "Index", hostUrl = UrlParameter.Optional } // Parameter defaults
            );
4

3 回答 3

1

您需要对参数使用 URL 编码http://google.com

因此,请在此处导航:

http://localhost:8343/http%3A%2F%2Fgoogle.com

(我刚刚使用了一个在线URL 编码器工具。)

于 2012-09-06T21:39:27.057 回答
1

采用

HttpUtility.UrlEncode

或者

Server.URLEncode

取决于您在哪里进行编码。

于 2012-09-06T21:43:43.880 回答
1

我按照这些步骤进行了修复。

  • 将 Web 项目属性更改为“使用 IIS 本地服务器”并选中“使用 IIS Express”
  • 在 Web.config 里面添加以下设置:
<httpRuntime requestPathInvalidCharacters=""/>
于 2012-09-10T22:16:37.360 回答