我有一个webapi方法,如下所示
[HttpGet]
[Route("students")]
public string Get([FromUri]Student student)
{
return "value";
}
我的webapiconfig
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
当我不使用[Route(" ..")]属性时,我会填充学生对象,如果我使用[Route(" ..&#34)则为null ;)]
任何人都可以帮忙解决这个问题。
由于
答案 0 :(得分:2)
当您使用[Route("students")]
时,假设您的http://localhost/students?Name=name&Age=12
班级有Student
和Name
属性,则以下网址将与Age
匹配。
当您不提供任何查询参数时,它将为null并且是预期的行为。
如果Student
对象是struct
,则它将是必需参数,因此您将从WebApi获取异常,而不是null
答案 1 :(得分:0)
简单地,检查其是否为空
[HttpGet]
[Route("students")]
public string Get([FromUri] Student student)
{
if (student == null)
student = new Student();
return "value";
}