首页 > 后端开发 > C++ > 如何处理 MVC Web API 2 URL 参数中的点字符?

如何处理 MVC Web API 2 URL 参数中的点字符?

Patricia Arquette
发布: 2025-01-05 08:11:44
原创
240 人浏览过

How to Handle Dot Characters in MVC Web API 2 URL Parameters?

如何在 MVC Web API 2 URL 参数中容纳点字符

在 MVC Web API 2 应用程序中,可能需要允许 URL参数包含点字符(“.”),以与某些 URL 格式兼容。但是,默认情况下,框架将点视为路由分隔符,并在存在这些字符时生成 HTTP 404 错误。

问题:

以下 URL,它尝试检索 ID 为“staff.33311”的人,抛出 404错误:

http://somedomain.com/api/people/staff.33311
登录后复制

默认路由配置:

config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);
登录后复制

此路由配置假设“id”是单个段,并且内部不允许有点

解决方案:

要允许 URL 参数中包含点,您可以在 URL 后面附加一个斜杠。这向 ASP.NET MVC 发出信号,表明该参数将继续超出第一个段。

http://somedomain.com/api/people/staff.33311/
登录后复制

通过添加斜杠,路由将变为:

api/{controller}/{id}/{trailingSegment}
登录后复制

ASP.NET MVC 现在将解释“staff.33311”作为“id”的值

示例

使用更新的路由配置,PeopleController 中的以下代码将成功处理带有点字符的 URL:

public IHttpActionResult GetPerson(string id)
{
    var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower()));
    if (person == null)
        return NotFound();

    return Ok(person);
}
登录后复制

以上是如何处理 MVC Web API 2 URL 参数中的点字符?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板