2015-05-07 232 views
-2

在我的應用程序中,我有各種ViewsControllersASP.Net隱藏路徑MVC 4

很自然,當瀏覽頁面時,URL將會根據ControllerView;

E.g.

  • http://example.com/home/index
  • http://example.com/account/register
  • http://example.com/product/newproduct

但我想保持ControllerView名在地址欄的祕密,換句話說,當一個人將導航,總是在地址欄顯示http://example.com

有誰知道如何隱藏這些路線?我正在使用ASP.NET MVC 4 C#應用程序。

基本上只需要服務器來跟蹤頁面。

+0

我的問題是爲什麼。它是以這種方式開發的,並且你沒有給出任何必要隱藏它們的理由。 –

+0

我在考慮隱藏它,然後服務器照顧它。這是一個我不確定的想法甚至是可能的。這篇文章已經通過外觀的確認。我正在考慮它作爲另一個安全層。我對MVC還是比較陌生的,所以你顯然認爲這是一個愚蠢的問題。 –

+1

不是一個愚蠢的問題。只是簡單地問爲什麼。所以這是一個安全問題。唯一的問題是任何[fiddler](http://www.telerik.com/fiddler)的人都能夠看到請求的樣子。但是,當使用[SSL的URL加密](http://stackoverflow.com/questions/499591/are-https-urls-encrypted)。但任何連接(客戶端)的人仍然可以使用IE,FF,Chrome等可用的DEV工具看到完整的請求。 –

回答

2

不幸的是,我相信這不是一件容易完成的任務。 MVC路由引擎需要某些信息將請求發送到屏幕,並且在映射路由時處理該信息。此外,你可以想象如果瀏覽器允許網站特別改變地址,人們可能會遇到麻煩。看看這個視頻。詳細說明路由引擎的工作原理相當不錯Pluralsight

+0

好視頻,我有點理解它是如何工作的,我只是在想它;沒有人可以使用URL進行導航,只能使用UI控件瀏覽頁面。基本上讓服務器處理正在請求哪個頁面的狀態等。 'ActionLink'你在哪裏傳入一個'Controller'和一個'Action'。控制器然後返回一些東西作爲一個頁面,但在URL中它基本上隱藏了它返回的內容。 –

+0

@MikeSmithDev yehp在回答這個問題後大聲疾呼 –