2015-07-10 56 views
0

與其說是一個普通的問題,不如說它是一個「你將如何處理它」,所以如果這不屬於這個特定的堆棧,請道歉。我對如何在基於.net構建的web框架中完成這個任務感到好奇。基於C#的Web應用程序的路由

Spring和ASP都有路由的概念。在Rails中,我們有一個路徑文件,並且在一些環節和跳轉之後由Web服務器處理。在PHP中,我們有.htaccess文件說明,這是index.php文件所在的位置,運行所有內容。

但如果是要建立一個非常裸露的骨頭,非常基本的C#的web框架,他們會怎麼處理路由?有沒有這種類型的簡單(關鍵詞:簡單)Web框架的例子,讓我可以更深入地瞭解如何處理路由這樣的事情?

更新

我要聲明,我不希望瞭解如何使用路由,但如何在C#中的基於Web框架,路由實現。它是XML文件嗎?有沒有一個htaccess文件?

因此我的要求可能被用於API,所以我可以更好地瞭解一個小型的web框架,多數民衆贊成,確定這是如何實現在C#編寫的

+0

更多信息您是否想要了解如何使用它,或者它是如何工作的? – kmacdonald

+0

對不起,我應該已經更清楚了,我期待了解它是如何實現的,所以它是如何工作的。 – TheWebs

回答

1

路由在asp.net一個基於.NET的Web框架路由內置於您的代碼中。有幾種方法可以定義路線。如果要使用API​​路由,則可以在控制器和動作上使用路由屬性來定義它,或者可以在路由配置類中定義它們。開箱即用的asp.net模板是瞭解它們如何工作的一個很好的起點。同樣在MSDN網站上讀到有關此路由https://msdn.microsoft.com/en-us/library/cc668201(v=vs.140).aspx

+0

雖然很有用,但我並不希望進入ASP的一面,更多的瞭解如何在IIS服務器上託管的應用程序中實現這些功能...... As。網絡和各種Web框架變得更加開放源代碼我期待了解是否可以應用相同的概念來說出託管.net Web應用程序的Linux服務器......但是我會檢查你的鏈接 - 謝謝。 – TheWebs

+0

如果是這樣的話,也許你想看看OWIN:http://owin.org/ – kmacdonald

1

的.htaccess是Apache概念,所以它並沒有真正適用於一般運行在IIS C#的Web應用程序。在C#基於web框架

路由在許多不同的方式處理。有些使用XML,有些則不使用。內置在ASP.NET MVC中的路由機制使用方法/控制器上的命名約定和可選屬性(屬性路由)。

如果你要實現你自己的路由,你可以寫一個檢查傳入的URL,並將它們與一組給定的重寫規則的HTTP模塊。這些重寫規則可以存儲在XML文件,文本文件,數據庫或任何你想要的地方。

+0

這些處理方式會不同,因爲將來我們可能會看到基於C#的web框架和.net web應用程序正在運行在說Linux或Mac服務器(主要是Linux)? – TheWebs

+0

也許,也許不是。這只是一個實現細節。實現URL重寫模塊(實質上是路由關於什麼)需要的唯一要求是能夠在處理有問題的Web應用程序之前掛接到Web服務器的管道。在IIS中,我們有HTTP模塊和HTTP處理程序(ISAPI擴展),在Apache中,我們有.htaccess和RewriteEngine等等。 – HaukurHaf

2

有在IIS處理程序映射部分,在那裏你可以指定要支持自定義擴展處理程序。您可以定義自己的HTTPHandlers,並在IIS或web.config中註冊它們。

至於網頁API或MVC推移,框架提供了擴展名的URL處理程序。您可以在web.config文件中找到它們的引用,該文件使用您在應用程序啓動期間提供的路線映射來查找URL的匹配路線。它使用各種慣例將最佳操作與URL相匹配。如果你想自己實現處理程序,你可以自定義你的約定或配置。在 https://msdn.microsoft.com/en-us/library/cc668201%28v=vs.140%29.aspx

+0

由於.net的開放源代碼更多,許多這些框架將在Mac,Linux等上開發,甚至可能在Linux上運行,因此框架會更多地使用無擴展的url處理程序。 – TheWebs