Skip to main content
 首页 » 编程设计

c#之Asp.net Webapi 使用 [FromUri] 和具有两个参数的路由

2024年01月24日33落叶无声

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

从客户端发送跟随请求时,StreetID 始终为 0

http://localhost:1887/Street/34/23295?MunZone=7&StartDate=&EndDate=

但它在没有任何可选参数的情况下工作

http://localhost:1887/Street/34/23295

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

请您参考如下方法:

调用 Street/34/23295?MunZone=7&StartDate=&EndDate= 我的 Controller 定义为:

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

给予:

当我将 RealEstateFilter 定义为:

public class RealEstateFilter 
{ 
    public int? MunZone { get; set; } 
    public DateTime? StartDate { get; set; } 
    public DateTime? EndDate { get; set; } 
} 

我的 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" /> 

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