2013-11-27 51 views
0

我正在使用web api MVC4。在get方法中,我將傳遞字符串參數,這將有空間。 執行過程中出現錯誤。傳遞參數與空間web api mvc4

WebApiConfig就像下面

 config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

    config.Routes.MapHttpRoute(
      name: "FindDetailsByCountry", 
      routeTemplate: "api/{controller}/FindDetailsByCountry/{country}", 
      defaults: new { country = RouteParameter.Optional }, 
      constraints: new { country = @"^[a-z]+$" } 
     ); 

現在,當我運行應用程序

案例1
輸入:.../API /聯繫人/
輸出
[{「姓名」:「Ashok」,「年齡」:60,「國家」:「印度」},{「姓名」:「納爾吉斯」,「年齡」:30,國家 「:」 印度 「},{」 名稱 「:」 納爾吉斯」, 「年齡」:35, 「國家」: 「伊朗」},{ 「名稱」: 「史蒂夫」, 「年齡」:50, 「國家」 : 「南非」}]

案例2
輸入:.../API /聯繫人/ FindDetailsByCountry/印度
輸出
[{ 「名稱」: 「阿肖克」 「時代」:60, 「國家」: 「印度」},{ 「名稱」: 「納爾吉斯」, 「年齡」:30, 「國家」: 「印度」}]

案例3
輸入:.../API /聯繫人/ FindDetailsByCountry/南非
輸出: HTTP錯誤404.0 - 找不到 您正在尋找已被刪除的資源,有其名稱更改,或者暫時不可用

對於案例3,我收到錯誤消息。我一直在使用這些選項

  1. ... API /聯繫人/ FindDetailsByCountry /南非洲+
  2. ..api /聯繫人/ FindDetailsByCountry /南%20Africa
  3. ../api/contact/FindDetailsByCountry檢查/ 「南非」
  4. ../api/contact/FindDetailsByCountry/'South非洲

不過它給了同樣的錯誤。
其實我會在我的android應用程序中使用輸出。 在android中我也使用。但沒有結果。

任何一個可以告訴我如何通過參數南非
非常感謝你對我以前的問題ps2goat。它現在有效。

謝謝

回答

0

當你有constraints不允許空間。因此,你將無法通過space./

您的代碼

constraints: new { country = @"^[a-z]+$" } 

將其更改爲

constraints: new { country = @"^[a-z]\s+$" }