【问题标题】:Purpose of "name" and "defaults" in config.Routes.MapHttpRouteconfig.Routes.MapHttpRoute 中“名称”和“默认值”的用途
【发布时间】:2014-05-16 21:44:58
【问题描述】:

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 属性也是如此:它有什么作用?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      路由的名称可用于按名称构造呈现的链接。例如,参见UrlHelper.RouteUrl

      【讨论】:

        猜你喜欢
        • 2018-02-09
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 2013-06-14
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        相关资源
        最近更新 更多