繁体   English   中英

ASP.NET Web API中带有可选参数的属性路由

[英]Attribute routing with optional parameters in ASP.NET Web API

我正在尝试使用Web API 2属性路由来设置自定义API。 我的路由工作,我的函数被调用,但由于某种原因,我需要传入我的第一个参数,以便一切正常工作。 以下是我要支持的网址:

http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2&parameter3=value3&p4=v4

最后3个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需要显式设置可选值,即使对于可以为空的类型...因此您可以尝试设置以下内容,您应该看到第一个请求成功

DateTime? parameter2 = null

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM