【发布时间】:2013-11-27 07:27:38
【问题描述】:
我正在使用 web api MVC4。在 get 方法中,我将传递字符串参数,该参数将有空格。 在执行过程中会报错。
我的 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/contact/
输出:
[{"Name":"Ashok","Age":60,"Country":"India"},{"Name":"Nargis","Age":30,"Country":"India"},{ "姓名":"纳尔吉斯","年龄":35,"国家":"伊朗"},{"姓名":"史蒂夫","年龄":50,"国家":"南非"}]
案例 2
输入:.../api/contact/FindDetailsByCountry/印度
输出:
[{"Name":"Ashok","Age":60,"Country":"India"},{"Name":"Nargis","Age":30,"Country":"India"}]
案例 3
输入:.../api/contact/FindDetailsByCountry/南非
输出:
HTTP 错误 404.0 - 未找到
您要查找的资源已被删除、名称已更改或暂时不可用
对于案例 3,我遇到了错误。我已经使用这些选项进行了检查
- ...api/contact/FindDetailsByCountry/South+Africa
- ..api/contact/FindDetailsByCountry/South%20Africa
- ../api/contact/FindDetailsByCountry/“南非”
- ../api/contact/FindDetailsByCountry/'南非'
仍然出现同样的错误。
实际上,我将在我的 android 应用程序中使用输出。
在 android 中,我也使用了URLEncoder.encode("South Africa", "UTF-8")。但没有结果。
谁能告诉我如何传递参数南非?
非常感谢 ps2goat 提出我之前的问题。现在可以使用了。
谢谢
【问题讨论】:
标签: asp.net-mvc-4