Asp.net Mvc 4 和 Web Api 中的路由 [英] Routing in Asp.net Mvc 4 and Web Api
本文介绍了Asp.net Mvc 4 和 Web Api 中的路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以同时使用以下两个路由规则吗?
Can I use the following two route rule together ?
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional } );
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
按控制器说是 = FruitApiController:ApiController
我希望有以下内容
Say by controller is = FruitApiController:ApiController
and I wish to have the following
列表<水果>Get()
=api/FruitApi/
列表<水果>GetSeasonalFruits()
= api/FruitApi/GetSeasonalFruit
Fruit GetFruits(string id)
= api/FruitApi/15
Fruit GetFruitsByName(string name)
= api/FruitApi/GetFruitsByName/apple
请帮我解决这个问题.谢谢
Please help me on this. Thanks
推荐答案
你可以有几个路线:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ApiById",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional },
constraints: new { id = @"^[0-9]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiByName",
routeTemplate: "api/{controller}/{action}/{name}",
defaults: null,
constraints: new { name = @"^[a-z]+$" }
);
config.Routes.MapHttpRoute(
name: "ApiByAction",
routeTemplate: "api/{controller}/{action}",
defaults: new { action = "Get" }
);
}
}
这篇关于Asp.net Mvc 4 和 Web Api 中的路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文