当我用带有特殊字符的字符串参数调用webapi2 GET时出现问题(使用正常字符都可以正常工作)。
AngularJs
this.getByContactValue = function (contactValue) {
return $http.get("/api/subjects/"+ contactValue+ "/ContactValue" );
}
C#
[Route("api/subjects/{contactValue}/ContactValue")]
public IEnumerable<Subject> GetByContactValue(string contactValue)
{
return repository.GetByContactValue(contactValue);
}
响应是404错误。
我也尝试过以这种方式修改请求
this.getByContactValue = function (contactValue) {
var request = $http({
method: "get",
url: "/api/subjects/ContactValue", //modified the route in c# controller
data: contactValue
});
return request;
}
但是错误是相同的。
调用webapi的最佳方法是哪种?
最佳答案
您必须将查询字符串中的数据传递为
$http({
url: "/api/subjects/ContactValue",
method: "GET",
params: {contactValue: contactValue}
});
更新你的动作
[Route("api/subjects/ContactValue?contactValue={contactValue}")]
public IEnumerable<Subject> GetByContactValue(string contactValue)
{
return repository.GetByContactValue(contactValue);
}