2012-02-19 45 views
0

如何使網站上的鏈接導向當前用戶的頁面?我不想讓他們得到每個用戶的名單,但只有他們自己。我想這樣的事情對我的菜單鏈接:將ActionLink設置爲特定用戶

  • @ Html.ActionLink( 「我的資料」, 「詳細信息」, 「客戶」,Membership.GetUser()ProviderUserKey)
  • 回答

    3

    我想如果您將用戶發送到「我的詳細信息」頁面而沒有任何參數或路線值,則會更好。

    該頁面將顯示當前用戶數據。那麼爲什麼要這樣傳遞呢?

    只是重定向用戶到「我的詳細信息」頁面,之後,當用戶在該網頁,你可以使用當前用戶:HttpContext.CurrentUser。

    請勿將用戶數據放入路由值中。相反,您可以在該頁面的控制器中獲取它並將其傳遞到頁面。

    +0

    Awsome!乾杯! – 2012-02-20 17:02:26

    +0

    @MagnusKarlsson:不客氣:) – 2012-02-20 17:49:35

    1

    如果你想在「鏈接」,以顯示顯示頁面時通過身份驗證的用戶觀看,創建返回你想喜歡的數據ChildAction:

    [Authorize] 
        [ChildActionOnly] 
        public ActionResult UserLinks() { 
         var items = someRepository.GetLinks(User.Identity.Name); 
         return PartialView(items,"SomePartialView"); 
        } 
    

    然後,在使用的RenderAction查看如下:

    @{ Html.RenderAction("UserLinks");} 
    

    其次,我同意「Afshin Gh」的評論。您可以在Controller中根據需要對數據進行編碼,而不是在「ActionLink(s)」中傳遞數據,就像我在上面的「UserLinks」方法中展示的那樣。這樣,有人不能操縱Url來顯示其他客戶的數據。