在ASP.NET Web API中使用可选参数的属性路由
我正在尝试使用Web API 2属性路由来设置自定义API。 我有我的路线工作,以便我的函数被调用,但出于某种原因,我需要传递我的第一个参数,一切工作正常。 以下是我想要支持的url:
http://mysite/api/servicename/parameter1 http://mysite/api/servicename/parameter1?parameter2=value2 http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3 http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3&p4=v4
最后3个URL可以工作,但是第一个URL说:“在控制器的控制器名称上找不到与请求匹配的操作”。
我的控制器看起来像这样:
public class MyServiceController : ApiController { [Route("api/servicename/{parameter1}")] [HttpGet] public async Task<ReturnType> Get(string parameter1, DateTime? parameter2, string parameter3 = "", string p4 = "") { // process } }
Web API需要显式地设置可选值,即使是可为空的types也是如此…所以你可以尝试设置下面的内容,你应该看到你的第一个请求成功
DateTime? parameter2 = null
- WebAPI中的DependencyResolver.SetResolver和HttpConfiguration.DependencyResolver之间有什么区别
- ASP.NET Core 1.0 Web API中的简单JWT身份validation
- 如何强制ASP.NET Web API根据我的input返回JSON或XML数据?
- Web API和ValidateAntiForgeryToken
- 使用AngularJS从ASP.NET Web API方法下载文件
- ASP.NET Web API会话什么的?
- 在WebApi中需要SSL?
- ASP.NET Web API – 不允许PUT&DELETE动词 – IIS 8
- MVC5,Web API 2和Ninject