" name"的目的和"默认"在config.Routes.MapHttpRoute中

时间:2014-05-16 21:44:58

标签: c# asp.net-web-api

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 });
        }
    }
}

doc 不是很具描述性。 name财产的目的是什么?它还在哪里使用? defaults属性也是如此:它做了什么?

感谢。

2 个答案:

答案 0 :(得分:4)

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

defaults允许您为控制器提供默认值,以便将请求映射到(如果模板未指定{controller}段),如果不遵循约定命名则调用操作,{{1模板中的段,参数的默认值等

答案 1 :(得分:0)

路径的名称可用于按名称构造渲染链接。例如,见UrlHelper.RouteUrl