ASP MVC即使未提供任何参数,也会创建参数模型

1 c# asp.net rest asp.net-mvc

我正在使用ASP.Net MVC创建一个RESTful API
有一个GET路由有问题.我创建了一个参数模型来处理所有接收参数.

 public class MyParameters : BaseParameters
 {
    public string ProductCode { get; set; }
    ...
 }
Run Code Online (Sandbox Code Playgroud)

并以这种方式使用这个类:

 public HttpResponseMessage Get([FromUri] MyParameters filter)  
Run Code Online (Sandbox Code Playgroud)

问题是我没有传递任何参数 - 过滤器对象没有被初始化.它始终为空.
但我还是需要初始化这个对象,因为有一些默认参数,比如flags,我在构造函数中初始化.

 public MyParameters()
    {
        AuthFlag = 'Y';
    }
Run Code Online (Sandbox Code Playgroud)

我知道这是默认行为,但我不想做这样的事情:

if (filter == null)
      filter = new MyParameters();
Run Code Online (Sandbox Code Playgroud)

也许是否有任何配置可用于创建参数对象?

谢谢你的任何建议.

Moh*_*oho 5

有零传播运算符:

filter = filter ?? new MyParameters();
Run Code Online (Sandbox Code Playgroud)

或者您可以实现自己的模型绑定器/模型绑定器提供程序.作为起点,您可以参考这个.