Web API 2中的可选对象参数?

时间:2016-03-21 21:12:12

标签: c# asp.net-web-api2

public async someReturnType PostSomething(long id, long someOptionalLong = 0);

以上代码有效并且是标准用例。但是如果我希望我的可选参数是SomeClass类型呢?

public async someReturnType PostSomething(long id, SomeClass someOptionalParam = null);

上面给出了一个错误并说它是不允许的。如何传递可选的类实例参数?

2 个答案:

答案 0 :(得分:0)

SomeClass classInstanceOptionalParam = default(SomeClass);

Web API对此没有问题,虽然我认为对于引用类型总是为null?那好吧。不要认为这是一个很好的答案,但至少它不会抛出错误。

答案 1 :(得分:0)

Web Api默认支持将null值作为参数,但要强制Web API从URI读取复杂类型,请将[FromUri]属性添加到参数中。所以你的api方法是:

public async someReturnType PostSomething(long id,[FromUri]SomeClass someOptionalParam)