2011-09-30 56 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

相關問題