我有一个签名如下的控制器:
[Route("products/filter/{apc=apc}/{xpc=xpc}/{sku=sku}")]
public IHttpActionResult Get(string apc, string xpc, int? sku)
{ ... }
我使用以下 URI 调用此方法:
第一个 URI 可以正常工作。第二个有一个奇怪的副作用。尽管 apc 和 xpc 的默认值在未提供时应为 null,但参数实际上是它们的名称。我可以通过增加额外的逻辑来克服这一点:
apc = (apc == "apc") ? null : apc;
xpc = (xpc == "xpc") ? null : xpc;
这看起来像是一种黑客行为,如果传递的值与参数名称相等,就会出现问题。
有没有一种方法来定义没有这种副作用的路线?