0

我有一個的WebAPI操作方法做這個:爲什麼我的具有默認參數的操作方法會導致404?

Public Function GetSomething(Id As Integer, Optional SomeValue As Integer = 0) As HttpResponseMessage 

我已經制定的標準路線:

routes.MapHttpRoute _ 
    (
     "DefaultWebApi", 
     "api/{controller}/{action}" 
    ) 

如果我把我的路線,指定IdSomeValue,它的工作原理罰款:

/api/MyController/GetSomething?Id=123&SomeValue=345 

但是,如果我沒有指定SomeValue,我收到了404:

/api/MyController/GetSomething?Id=123 

我不明白這一點在所有的,因爲SomeValue是可選的。如果我沒有指定它,我希望框架調用我的方法,只是傳遞默認值,我認爲這是MVC(不是WebApi)所做的。我在這裏做錯了什麼?

+1

嗯......我無法重新制作你的場景......你使用的是哪個版本的Web API? –

+0

你是說這隻適用於你?我不知道你如何檢查版本,但我的System.Web.Http文件的版本是5.0.0.0。 –

回答

0

好的,問題是完全不相關的,儘管我仍然困惑爲什麼WebApi沒有做正確的事情。創建我的網址的代碼被意外增加額外的&角色,所以我的網址竟是這樣的:

/api/MyController/GetSomething?Id=123& 

當我刪除這個多餘的&,默認參數再次合作。

我真的不明白爲什麼會打破WebApi中的默認參數機制。

相關問題