WebAPI:带有URL字符串/ URI参数的ApiController

时间:2012-09-15 16:06:41

标签: asp.net-mvc asp.net-web-api

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

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

我实施了以下行动:

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

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

但是:每当我按上述方式调用URL时,我都会收到400 - 错误 - 错误请求。

2 个答案:

答案 0 :(得分:2)

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

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

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

  5. id参数已正确绑定到Get action参数
  6. 您是否可以提供允许我们重现问题的步骤?

答案 1 :(得分:0)

问题似乎是我使用了VS集成网络服务器“Cassini”。 只要我在IIS Express中运行它,就可以了。