首頁 > 後端開發 > C++ > 如何在 ASP.NET Web API 2 路由中處理帶有特殊字元的 URL?

如何在 ASP.NET Web API 2 路由中處理帶有特殊字元的 URL?

Barbara Streisand
發布: 2025-01-05 03:19:42
原創
782 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板