将URL与ASP.NET中的路由匹配

时间:2018-03-06 14:24:40

标签: c# asp.net rest routing

我正在使用ASP.NET开发REST API,我需要在代表另一个API资源的API中的随机POST请求的主体中接受一个参数。

举个例子,假设我们有:

api/files api/operations

两个资源表示,表示可以对文件执行的文件和操作。

假设我想通过合并两个文件的POST请求接受一个操作,我会接受一个如下对象。

operation { name: 'merge', parameters: ['api/files/1', 'api/files/2'] }

我想验证参数数组中提交的网址。 第一步是将URL与API路由匹配,这样我就可以告诉参数目标哪个资源。

我使用visual studio 2017创建了一个示例ASP.NET Web API项目,并调试了以下方法。除了“安排”和“行为”之外没有什么特别的东西来自here

// GET api/values
        public IEnumerable<string> Get()
        {
            // Arrange
            var context = new StubHttpContextForRouting(requestUrl: "~/api/values");

            // Act
            RouteData routeData = RouteTable.Routes.GetRouteData(context);

            return new string[] { "value1", "value2" };
        }

routeData总是返回一个空模板的路由,我不知道它为什么存在。

routeData debuging result

这不是Test if a request's URL is in the Route table的重复。因为那个解决方案对我不起作用。

是否有任何解决方案或替代方案(除了为字符串url编写辅助解析器以匹配路由)?

0 个答案:

没有答案