我正在使用MVC Web Api服务器应用程序来生成客户端数据。另外,我想将JavaScript,XAP(Silverlight)和XML文件的集合发布到我的客户端应用程序。目前,我有一个项目结构,其中这些目录通过我的.Net实现代码(我不喜欢)混合,因为客户端应用程序使用URI来请求这些文件无法更改。不过,我想将客户端数据与服务器应用程序实现分开放在另一个文件夹中。
因此,有没有办法将客户数据存储在一个单独的文件夹中,例如
在我的项目中,同时仍然可以使用像
这样的URI访问这些文件客户端应用使用的网址是多少,而且无法轻易更改。
这是我的Global.asax
的主要方法AreaRegistration.RegisterAllAreas();
RouteTable.Routes.MapRoute(
name: "Default",
url: string.Empty,
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "TCMsimulator.Controllers" }
);
var config = new Microsoft.ApplicationServer.Http.HttpConfiguration();
RouteTable.Routes.MapServiceRoute<ResourcesService>("resources/", config);
RouteTable.Routes.MapServiceRoute<PublicResourcesService>("publicresources/",config);
RouteTable.Routes.MapServiceRoute<MonitorService>("monitor/", config);
有没有办法将文件夹重定向添加到路由表,以便URI中的虚拟文件夹重定向到文件系统文件夹?就像可以在Apache中使用ModRewrite一样?这似乎是一个简单的问题,但我还没有在Web Api中找到解决方案。
提前致谢!
答案 0 :(得分:0)
我建议使用属性路由。这更容易理解。您可以看到映射到单个资源的多个路由的示例。
答案 1 :(得分:0)
如果这些目录只包含文件而不包含Web Api生成的输出,您应该忽略到目录的路由,并确保它们的请求在Web Api之外运行,就像从IIS提供的常规静态文件一样(例如图像)。