Asp.net Webapi使用[FromUri]和Route有两个参数

Ara*_*ash 1 c# asp.net-web-api asp.net-web-api-routing

   [Route("Street/{ZoneID}/{StreetID}/")]
    public HttpResponseMessage GetStreet(int ZoneID,int StreetID,[FromUri]       RealEstateFilter Filter)
Run Code Online (Sandbox Code Playgroud)

以下请求从客户端发送时,StreetID始终为0

HTTP://本地主机:1887 /街道/23295分之34MunZone = 7&的StartDate =&结束日期=

但它没有任何可选参数

HTTP://本地主机:1887 /街道/23295分之34

我应该如何配置webapi才能阅读[Fromuri]

Nik*_*nte 7

Street/34/23295?MunZone=7&StartDate=&EndDate=使用我的控制器调用定义为:

public class SomeController : ApiController
{
    [Route("Street/{ZoneID}/{StreetID}/")]
    public HttpResponseMessage GetStreet(int ZoneID, int StreetID, [FromUri] RealEstateFilter Filter)
    {
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

放弃:

在此输入图像描述

当我将RealEstateFilter定义为:

public class RealEstateFilter
{
    public int? MunZone { get; set; }
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的web.api版本是:

  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net451" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net451" />
  <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net451" developmentDependency="true" />
Run Code Online (Sandbox Code Playgroud)

我从头开始创建我的Web.Api项目,这是唯一的东西.您是否有可能有其他干扰途径?