You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Web API如何传递含/的参数值至Action方法?

解决ASP.NET Web API传递含/字符参数的404问题

当参数DecpName包含/字符(如EEPS/RA)时,当前路由配置会导致URL被错误解析,触发HTTP Error 404.0 - Not Found,可以通过以下几种方式解决:

方法一:修改路由模板,启用贪婪匹配

修改路由特性,在参数名后添加*,让路由捕获包含/的完整参数值:

[HttpGet]
[Route("GetAllInventoryData/{DecpName*}")]
public IHttpActionResult GetInventoryData(string DecpName)
{
    try
    {
        // 业务逻辑实现
    }
    catch(Exception ex)
    {
        // 异常处理逻辑
    }
}

{DecpName*}属于贪婪匹配规则,会将该位置之后的所有字符(包括/)都作为DecpName的参数值,确保路由能正确匹配请求。

方法二:对参数进行URL编码

在前端发起请求前,将DecpName的值做URL编码,/对应的编码值为%2F。例如EEPS/RA编码后变为EEPS%2FRA,此时请求URL为:
GetAllInventoryData?DecpName=EEPS%2FRA
后端会自动对编码后的参数进行解码,无需修改现有路由配置。

方法三:改用POST请求,将参数放入请求体

如果参数内容复杂,可将请求方式改为POST,把参数放在请求体中传递,避免URL解析的限制:

[HttpPost]
[Route("GetAllInventoryData")]
public IHttpActionResult GetInventoryData([FromBody] string DecpName)
{
    try
    {
        // 业务逻辑实现
    }
    catch(Exception ex)
    {
        // 异常处理逻辑
    }
}

前端发送POST请求时,将DecpName的值放入请求体即可。

内容的提问来源于stack exchange,提问作者Codev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:52:38