ASP.Net Web API 中基于属性的路由使用


原文地址:http://www.intstrings.com/ramivemula/articles/attribute-based-routing-in-asp-net-web-api/


我们 大多数 已经 知道 我们 WebApiConfig 文件 配置 Web API 传统 路由 概念 种方法 解决了 大多数 基本 路由 问题 但是 自定义 路由 细粒度 控制 灵活性 进行 限制 属性 基于 路由 最受欢迎 nuget 可以 灵活 管理 控制器/行动 一级 路线 教程中 我们 打算 我们 如何 得到 基本 属性 基于 路由 作品

在我们 进入 一些 代码 之前 第一次 分享 关于 基于 属性 路由 社区 贡献 — — http://weblogs.asp.net/scottgu/archive/2013/04/19/asp-net-web-api-cors-support-and-attribute-based-routing-improvements.aspx ScottGu 的 最近 博客 文章 让我们 感谢 蒂姆 · 麦考尔 — — http://attributerouting.net/ 我们 提供 一个 美丽 特征

让我们 开始 Web API 模板 创建 一个 ASP.Net MVC4 项目 右键 单击 项目 选择 管理 Nuget 程序包 搜索 "AttributeRouting" 结果 安装 AttributeRouting (ASP.NET Web API)

下面为一些代码示例
using AttributeRouting;
using AttributeRouting.Web.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace MvcApplication1.Controllers
{
	// http://xxx/Products/GetEverything
    [RoutePrefix("Products")]
    public class ValuesController : ApiController
    {
        [GET("GetEverything")]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
	// http://xxx/Products/GetProduct/1
        [GET("GetProduct/{id}")]
        public string Get(string id)
        {
            return "value1";
        }
    }
}
这样能更方便的定义路由级别,如下的一些示例
[GET("GetProductByName/{name=Merc}")]
public string GetByName(string name)
{
     return name;
}
[ GET ( "GetProductByName/{name:alpha:length(4)=Merc}" )]
public string GetByName( string name){ return name;}       











[GET("GetEverything", ActionPrecedence = 1)]
[GET("Index")]
public IEnumerable<string> Get()
{
      return new string[] { "value1", "value2" };
}
[GET("GetProduct/{id}?{x}")]
public string Get(string id)
{
      return String.Format("Passed Id : {0}, Passed Querystring: {1}",
             id,
             System.Web.HttpContext.Current.Request.QueryString["x"].ToString());
}


[RouteArea("My")]
[RoutePrefix("Products")]
public class ValuesController : ApiController

以上为一部分示例,可以看到,这样相当于自定义路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值