[C#]WebApi 2 得到参数中有特殊字符

发布时间: 2017/2/23 20:05:32
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的问题来时我叫 webapi2与一个字符串参数包含的特殊字符(与普通字符所有正常工作)。

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 的最好方法?

解决方法 1:

最后我以这种方式解决了

[Route("api/subjects/ContactValue")]
public IEnumerable<Subject> GetByContactValue([FromUri]string contactValue)
{                                 
    return repository.GetByContactValue(contactValue);
}
官方微信
官方QQ群
31647020