通过get参数asp-net Api发送url

时间:2016-02-16 09:47:47

标签: c# jquery asp.net url

我很难将图片Url传递给我的API控制器。

控制器:

    [HttpGet]
    [Route("cont/getByUrl/{url}")]
    public string Get(string url)
    {
         //code         

    }

我的Ajax电话

  $.ajax({
      url: "http://localhost:64444/api/cont/getByUrl/"+ encodeURIComponent("http://www.moooi.com/sites/default/files/styles/large/public/product-images/random_detail.jpg?itok=ErJveZTY"),
      type: 'GET'
   });

如果我的参数是一个简单的字符串,我就到了那里,但是如果我发送了一个Url,总是有404,我使用的是IIS 7.5。

我需要在我的Web.config上做一些更改,否则我无法做到这一点?

2 个答案:

答案 0 :(得分:0)

使用encodeURI而不是encodeURIComponent,然后尝试

as不要调用encodeURIComponent,因为它会破坏URL

你的Ajax调用应该是这样的

$。AJAX({       url:“http://localhost:64444/api/cont/getByUrl/”+ encodeURI(“http://www.moooi.com/sites/default/files/styles/large/public/product-images/random_detail.jpg?itok=ErJveZTY”),       类型:'GET'    });

答案 1 :(得分:-1)

您可以使用ActionName。而不是路由。

用户控制器的例子:

// Get: api/Users/GetPostUser
[HttpGet, ActionName("GetPostUser")]

链接将是这样的:http://localhost:64444/api/Users/GetPostUser(使用正确的端口)