1

我想要一个具有 URI 或 URL 参数的操作的 ApiController。

http://testserver/api/Controller?id=http://www.stackoverflow.com

我实施了以下行动:

public bool Get(string id)
{
  ...
}

或者

public bool Get(Uri id)
{
  ...
}

但是:每当我按上述方式调用 URL 时,都会收到 400 - Error - Bad Request。

4

2 回答 2

2

我无法重现您描述的问题。这应该有效。以下是我尝试过的步骤:

  1. 使用 Empty 模板创建一个新的 ASP.NET MVC 4 应用程序
  2. 添加一个 Api 控制器:

    public class ValuesController : ApiController
    {
        public HttpResponseMessage Get(Uri id)
        {
            return Request.CreateResponse(HttpStatusCode.OK, id);
        }
    }
    
  3. 运行应用程序并导航到/api/values/?id=http%3A%2F%2Fwww.stackoverflow.com

  4. id 参数正确绑定到 Get 操作参数

那么您能否提供允许我们重现问题的步骤?

于 2012-09-15T16:14:10.993 回答
0

The problem seems to be that I used "Cassini", the VS integrated webserver. As soon as I ran it in IIS Express, it worked.

于 2012-09-15T16:42:54.293 回答