首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有多个参数的Web API路由

具有多个参数的Web API路由
EN

Stack Overflow用户
提问于 2014-01-15 22:39:03
回答 1查看 98.5K关注 0票数 34

我正在尝试解决如何为以下Web API控制器进行路由:

public class MyController : ApiController
{
    // POST api/MyController/GetAllRows/userName/tableName
    [HttpPost]
    public List<MyRows> GetAllRows(string userName, string tableName)
    {
        ...
    }

    // POST api/MyController/GetRowsOfType/userName/tableName/rowType
    [HttpPost]
    public List<MyRows> GetRowsOfType(string userName, string tableName, string rowType)
    {
        ...
    }
}

目前,我对URL使用以下路由:

routes.MapHttpRoute("AllRows", "api/{controller}/{action}/{userName}/{tableName}",
                    new
                    {
                        userName= UrlParameter.Optional,
                        tableName = UrlParameter.Optional
                    });

routes.MapHttpRoute("RowsByType", "api/{controller}/{action}/{userName}/{tableName}/{rowType}",
                    new
                    {
                        userName= UrlParameter.Optional,
                        tableName = UrlParameter.Optional,
                        rowType= UrlParameter.Optional
                    });

但目前只有第一种方法(有两个参数)有效。我是不是走对了行,或者我的URL格式或路由完全错了?路由对我来说就像是黑魔法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-15 22:43:18

问题是您的api/MyController/GetRowsOfType/userName/tableName/rowType地址总是匹配第一个路由,因此永远不会到达第二个路由。

简单的解决方法,首先注册你的RowsByType路由。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21140305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档