Skip to main content
 首页 » 编程设计

c#之config.Routes.MapHttpRoute 中 "name"和 "defaults"的用途

2024年02月13日30zhwl

在 global.asax 文件中,我有这样的内容:

void Application_Start(object sender, EventArgs e) 
{ 
    GlobalConfiguration.Configure(WebApiConfig.Register); 
} 

我有另一个包含此代码的文件:

using System.Web.Http; 
 
namespace WebConfig 
{ 
    public static class WebApiConfig 
    { 
        public static void Register(HttpConfiguration config) 
        { 
            config.MapHttpAttributeRoutes(); 
 
            config.Routes.MapHttpRoute( 
                        name: "DefaultApi", 
                        routeTemplate: "api/{controller}", 
                        defaults: new { id = System.Web.Http.RouteParameter.Optional }); 
        } 
    } 
} 

documentation不是很有描述性。 name 属性的用途是什么?它还用在哪里? defaults 属性也是如此:它有什么作用?

请您参考如下方法:

name 为路由分配一个名称,通过该名称可以在路由列表中识别路由。此名称用于类似 ApiController.Url.Link 的函数中生成路由链接等。

defaults 允许您提供默认值,例如将请求映射到的 Controller (如果模板未指定 {controller} 段)、调用操作不遵循命名约定,也不遵循模板中的 {action} 段、参数的默认值等。