在Web Api Get功能中允许特殊字符

时间:2019-01-08 13:57:25

标签: c# asp.net-web-api

我正在尝试将特殊字符传递给Web API中的自定义函数。如果我不传递特殊字符,则该功能有效。我要指的特殊字符是'#','&',....

[HttpGet]
[EnableQuery(MaxExpansionDepth = 5)]
public IQueryable<Test> QueryTest(string Query)
{
    var dbTest = db.Test.AsQueryable();
    return dbTest;
}

2 个答案:

答案 0 :(得分:1)

URL编码是必经之路。这应该作为您甚至没有想到的默认设置来解决,解决了很多问题。设置WebClient的编码

client.Encoding = Encoding.UTF8;

答案 1 :(得分:1)

一种选择是使用post方法,并将参数通过正文消息中的json对象传递。

[HttpPost]
public IQueryable<Test> QueryTest(QueryTestRequest request)
{
    var dbTest = db.Test.AsQueryable();
    return dbTest;
}

public class QueryTestRequest
{
   public string Query {get; set;}
}