我有一个数据库表的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?
答案 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
如果发货地址为空。
效果很棒!!