gpt4 book ai didi

routing - WebApi 可选参数 - 是必需的吗?

转载 作者:行者123 更新时间:2023-12-04 08:49:42 25 4
gpt4 key购买 nike

我有一个带有 get 方法的 web api Controller (TasksController),例如:

public IEnumerable<TimeUnitModel> Get(DateTime startDate, DateTime endDate, string projectCode = "")

如果我打电话
/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15

返回正确的结果。

如果我打电话
/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15&projectCode=

然后我得到:
{"projectCode.String":"A value is required but was not present in the request."}

知道为什么会这样吗?
谢谢。

编辑:
这是我在路由配置中的内容:
config.Routes.MapHttpRoute(
name: "tasks_get",
routeTemplate: "api/tasks",
defaults: new { controller = "tasks", projectCode = RouteParameter.Optional}
);

最佳答案

您的第一个电话:
/api/tasks?startDate=2012%2F12%2F08&endDate=2012%2F12%2F15是您如何使用可选参数调用方法(即参数是可选的,因此您没有指定它)。当您在查询字符串中指定“&projectCode=”时,您是在指定参数,并将其指定为 null。由于字符串可以为空,因此 api 假定您要发送空值。如果您希望该方法以空字符串运行,只需按照您之前的方式调用它,而根本不发送该参数。

关于routing - WebApi 可选参数 - 是必需的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13893793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com