我有ASP.NET的WebAPI操作方法,看起来像这样:默认值参数
[HttpGet]
public HttpResponseMessage Test([FromUri] TestRequest request)
{
request.Process();
return new HttpResponseMessage(HttpStatusCode.OK);
}
public class TestRequest
{
public string TestParam1 { get; set; }
public string TestParam2 { get; set; }
public void Process()
{
// do work
}
}
如果指定的URL请求已参数此工程确定,例如http://localhost/test?TestParam1=1
。但是,当查询字符串为空时,request
param为空,我在我的方法中得到了NullReferenceException
。
有没有办法告诉WebApi总是使用new TestRequest()
的实例作为方法参数,即使查询字符串为空?
没有自动的方式来做到这一点,而无需创建特定于web api的自定义绑定。如果您想在方法签名中使用'default(TestRequest)',请参阅http://stackoverflow.com/a/4066357/1260204。 – Igor