Arash
Arash

Reputation: 3688

Asp.net Webapi using [FromUri] with Route that has two parameter

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

StreetID Is Always 0 when Following Request Is Being Sent From Client

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

but it works without any optional parameter

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

how should i configure webapi to be able to read [Fromuri]

Upvotes: 1

Views: 7370

Answers (1)

NikolaiDante
NikolaiDante

Reputation: 18639

Calling Street/34/23295?MunZone=7&StartDate=&EndDate= with my Controller Defined as:

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

Gave:

enter image description here

When I defined RealEstateFilter as:

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

My web.api version is:

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

I created my Web.Api project from scratch, and this is the only thing in it. Is it possible you have some other route that is interfering?

Upvotes: 7

Related Questions