Web Api请求URL,其值为空字符串

时间:2014-08-13 19:44:30

标签: url asp.net-web-api space

我有一个数据库表的WebApi端点,其中3列是PK。 在某些情况下,其中一个键是数据库中的空字符串('')。

是否可以在我的请求网址中提供此空字符串值?

示例:

[RoutePrefix("api/Endpoint")]
public partial class APIUserCustomerController : BaseApiController<APIUserCustomer>
{
   [HttpDelete, Route("{UserName}/{CustomerNum}/{ShippingAddress}")]
   public HttpResponseMessage Delete(System.String UserName, System.String CustomerNum, System.String ShippingAddress) 
   {
       ...
   }
}

我试过了:

DELETE api/Endpoint/username/customerNum/,它给了我HTTP Error 404.0 - Not Found

以及:

DELETE api/Endpoint/username/customerNum/%20给了我Server Error in '/' Application. The resource cannot be found.

有没有我缺少的解决方案,或者我只是关于我的数据库中空字符串的SOL?

1 个答案:

答案 0 :(得分:1)

optional parameters中找到了解决方案:

[RoutePrefix("api/Endpoint")]
public partial class APIUserCustomerController : BaseApiController<APIUserCustomer>
{
   [HttpDelete, Route("{UserName}/{CustomerNum}/{ShippingAddress?}")]
   public HttpResponseMessage Delete(System.String UserName, System.String CustomerNum, System.String ShippingAddress = "") 
   {
       ...
   }
}

现在我可以致电

DELETE api/Endpoint/username/customerNum/shippingAddress如果我有送货地址

DELETE api/Endpoint/username/customerNum如果发货地址为空。

效果很棒!!