Angularjs 名称中的WebApi和Ampersands

Angularjs 名称中的WebApi和Ampersands,angularjs,asp.net-web-api,routing,Angularjs,Asp.net Web Api,Routing,因此,我的angular网站有一个webapi,使用以下方法 [Route("items/{itemName}")] public object GetMcguffinsByItem(string itemName) { return _mcguffinsService.GetAllByItemName(itemName); } 但是,项目名称可以使用符号AND作为有效字符。但是,当尝试使用带有与的项目时,该方法将返回一个请求 我不知道如何着手解决这个问题 为了进一步验证:我的印象是,

因此,我的angular网站有一个webapi,使用以下方法

[Route("items/{itemName}")]
public object GetMcguffinsByItem(string itemName)
{
    return _mcguffinsService.GetAllByItemName(itemName);
}
但是,项目名称可以使用符号AND作为有效字符。但是,当尝试使用带有与的项目时,该方法将返回一个请求

我不知道如何着手解决这个问题

为了进一步验证:我的印象是,编码和使用%26都是向URI的一部分传递符号和所必需的。在搜索我的问题时,这似乎是一个常见的答案。我已经排除了angular,因为我可以验证它是否正确构建字符串,以及其他名称是否生成所需的结果

javascript方法encodeURIComponent()后跟使用angular服务对项目名称进行双重编码,并返回404

编辑: 样本输入: 266民宿酒店 编码后: A%26B%20266

控制台: angular.js:10722获取404(未找到)

在api上直接使用相同输入的浏览器会出现以下错误:

[HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (&).]
   System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +11944671
   System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +55

URI在发出请求之前对名称中的所有字符进行编码?@jornsharpe我正在这样做,结果使用了%26,正如预期的那样。还有什么我需要检查的吗?那么请给出一个例子来说明这个问题。