2011-09-30 50 views
2

我有一个现有的模型,它具有从磁盘中的多个文件中读取模型的类。我在当前的ASP.NET MVC项目中使用它,并从磁盘读取正确的文件,处理读取的类需要版本 URL参数和Request.PhysicalApplicationPath参数。当我在ASP.NET MVC控制器中并且使Request对象和传入参数形成URL时,这很容易。ASP.NET MVC中的数据服务反射提供程序

当我再不过要使用数据服务类暴露我的模型我首先需要能够在相同的URL参数和Request对象发送到类阅读模式。当我在我的svc文件中时,我不明白应该如何访问URL参数和Request对象,或者我应该如何使用必须获取的get属性将它们传递到“context”对象阅读我的模型?

更新: 我想有一些类似于下面的地方,其中“23456”然后是我可以转发到我的类从磁盘读取模型的版本号,其余的是我传递给DataService的查询做它的魔法。

http://MySite/23456/MyService/Category(1)/Products?$top=2&$orderby=name 

所以基本上 - 这可能既使用MVC路由和参数控制等,然后通过查询DataService的拿到问基于URL的问题的充分灵活性的休息吗?

回答

0

我想你是问如何提供在你的控制器提供一个基础服务(在这种情况下,数据服务)某些特定的环境数据。

通常情况下,更容易和最直接的方式做到这一点是让控制器的责任拉出上下文特定的数据一起,以服务为标准方法的参数转发。

有一些关于你目前的情况,可防止您从控制器抓住版本和URL数据并通过他们下到服务层?

+0

但是,然后我必须使查询“静态”,例如,让我前100或按类别例如。有没有办法将灵活性与DataService和MVC的路由/参数处理结合起来? – Riri

+0

这取决于你正在处理你的数据层的方式,但如果它适合你的需要,你的数据层可以通过增加类似版本和地址的附加约束条件是未来返回一个IQueryable ,这可能会进一步细化控制器使用LINQ出HttpContext或什么.. – fdfrye

相关问题