我正在使用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 /
输出:
[{ “名称”: “阿肖克”, “年龄”:60, “国家”: “印度”},{ “名称”: “纳尔吉斯”, “年龄”:30, “国家”: “印度”},{ “姓名”:“纳尔吉斯”,“年龄”:35,“国家”:“伊朗”},{“姓名”:“史蒂夫”,“年龄”:50,“国家”:“南非”}]
案例2
输入:... / api / contact / FindDetailsByCountry / india
输出:
[{ “名称”: “阿肖克”, “年龄”:60, “国家”: “印”},{ “名称”: “纳尔吉斯”, “年龄”:30, “国家”: “印度”}] < / p>
案例3
输入:... / api / contact / FindDetailsByCountry / 南非
输出:
HTTP错误404.0 - 未找到
您要查找的资源已被删除,名称已更改或暂时不可用
对于案例3,我收到错误。我已经使用这些选项检查了
仍然是同样的错误。
其实我会在我的android应用程序中使用输出。
在android中我也使用了URLEncoder.encode("South Africa", "UTF-8")
。但没有结果。
任何人都可以告诉我如何传递参数南非吗? 非常感谢ps2goat对我之前的问题。它现在有效。
由于
答案 0 :(得分:0)
请看下面的链接..它可能有帮助..
答案 1 :(得分:0)
因为你constraints
不允许空间。因此,你将无法通过空间./
您的代码
constraints: new { country = @"^[a-z]+$" }
将其更改为
constraints: new { country = @"^[a-z]\s+$" }