2016-02-29 42 views
0

我正在MVC中做一個簡單的註冊登錄視圖配置文件應用程序,當我調用視圖配置文件的操作方法時,我正在根據他/她的名字搜索用戶。 現在我的問題是用戶名在url中可見 這樣的不在URL中顯示數據MVC4

'http://localhost:23444/Home/EditProfile用戶名= arrow'

此處箭頭是我的用戶名。 現在我不希望任何細節顯示在URL中 有沒有辦法做到這一點 我試圖改變我的RouteConfig.cs仍然無法正常工作。 這裏是我的RouteConfig.cs文件

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}", 
      defaults: new { controller = "Home", action = "Index" } 
     ); 
    } 
} 

請告訴我如何來解決這個問題。 在此先感謝。

+0

除非你提交一個表單,參數必須出現在URL –

+0

有沒有辦法,除非你用會話,你可以隱藏*用戶名*從瀏覽器地址欄中,但是這不好聽,你通過在用戶名之前井URL爲什麼不加密,所以你可以防止他人從地址欄/歷史記錄中看到它。 – Prabhat

+1

只是不要在URL中輸入用戶名。從登錄用戶獲取它。 – mason

回答

1

如果你有搜索功能,那麼這種行爲是預期的。如果您只是不想在URL中顯示它,請將宿舍的方法更改爲POST。這應該隱藏它的URL。

如果你有一個鏈接到其他人的個人資料,那麼你應該遵循@ vikas_jagdale的答案。顯示一個唯一的ID代替名稱。

如果您在生成此URL的地方發佈代碼部分將會是最好的,這將有助於他人具體化。

1

您不假設將用戶名設置爲ID,請遵循以下步驟。

  1. 使用唯一標識符類型(C#中的GUID)在DB中創建一個唯一列。
  2. 使用用戶詳細信息在插入數據庫期間生成一個新的GUID。
  3. 現在獲取具有GUID列的用戶列表。
  4. 現在創建一個網格中設置您的網址爲下面給出 -

    @ Url.Action( 「EditProfile」, 「家」,新{ID = item.guidProp})