首页 > 后端开发 > C++ > 如何在 ASP.NET Web API 2 路由中处理带有特殊字符的 URL?

如何在 ASP.NET Web API 2 路由中处理带有特殊字符的 URL?

Barbara Streisand
发布: 2025-01-05 03:19:42
原创
783 人浏览过

How to Handle URLs with Special Characters in ASP.NET Web API 2 Routing?

MVC Web API 2 中使用特殊字符进行路由

问题:
尝试使用包含特殊字符的 URL 访问资源,例如路径段中的点 (`.') 会导致“HTTP 错误 404.0 - 未找到”错误。

配置:
问题中提供的示例控制器和 WebApiConfig:

// PeopleController.cs
public class PeopleController : ApiController
{
    // ...
}

// WebApiConfig.cs
public static void Register(HttpConfiguration config)
{
    // ...

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

解决方案:
至路径段中允许存在特殊字符,例如点,将WebApiConfig路由修改为如下所示:

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

此路由模板添加了一个名为 {*path} 的包罗万象的路由参数,用于捕获任何剩余的路径段,包括点等特殊字符。

示例:

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

通过在 URL 末尾附加斜线 (/),可以将请求路由到处理路径段的控制器操作,在本例中为staff.33311.

以上是如何在 ASP.NET Web API 2 路由中处理带有特殊字符的 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

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