2012-02-19 12 views
0

サイトのリードを現在のユーザーのページにリンクするにはどうすればよいですか?私は彼らがすべてのユーザーのリストを取得するだけではなく、自分自身を取得したい。私は私のメニューリンクについては、このような何かを考えている:Html.ActionLink @特定のユーザーにActionLinkを作成

  • ( "私の詳細"、 "詳細"、 "顧客"、Membership.GetUser()ProviderUserKey。)
  • 答えて

    3

    を私は思います「マイ・スペシャル」ページにユーザーを送信すると、パラメータまたはルート値なしでが表示されます。

    ページには現在のユーザーデータが表示されます。それでは、なぜこれを渡すのですか?

    だけリダイレクトユーザー「マイ詳細」ページ、にし、ユーザーがそのページであるときに、その後、、あなたが使用して現在のユーザーを取得することができます:HttpContext.CurrentUserを。

    ルート値にユーザーデータを入れないでください。代わりに、そのページのコントローラで取得してページに渡すことができます。

    +0

    Awsome!乾杯! –

    +0

    @MagnusKarlsson:あなたは歓迎です:) –

    1

    あなたが好きたいデータを返すChildActionを作成し、ページが認証済みユーザーが表示されたときに表示するように表示する「リンク」したい場合:

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

    その後、中RenderActionを使用そのようなビュー:

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

    第二に、私は「アフシン・Ghの」によって、コメントに同意します。あなたの "ActionLink(s)"にデータを渡すのではなく、上記の "UserLinks"メソッドで表示しているように、コントローラーでコードをコーディングして必要に応じてデータをフィルタリングすることができます。このようにして、誰かが別の顧客のデータを表示するためにURLを操作することはできません。

    関連する問題