Сделать ActionLink для конкретного пользователя - PullRequest
0 голосов
/ 20 февраля 2012

Как сделать так, чтобы ссылки на сайте приводили к страницам текущего пользователя?Я не хочу, чтобы они получали списки каждого пользователя, а только самих себя.Я думаю, что-то вроде этого для моих ссылок меню:

@Html.ActionLink («Мои данные», «Детали», «Клиенты», Membership.GetUser (). ProviderUserKey)

Ответы [ 2 ]

3 голосов
/ 20 февраля 2012

Я думаю, что лучше, если вы отправите пользователя на страницу «Мои данные» без каких-либо параметров или значений маршрута .

На странице будут отображаться данные о текущих пользователях.Так зачем передавать это так?

Просто Перенаправить пользователя на страницу «Мои данные» , и после этого, , когда пользователь находится на этой странице , вы можете получитьтекущий пользователь использует: HttpContext.CurrentUser.

Не помещайте данные пользователя в значения маршрута. Вместо этого вы можете получить их в контроллере этой страницы и передать ихстр.

1 голос
/ 20 февраля 2012

Если вы хотите, чтобы «Ссылки» отображались при просмотре страницы аутентифицированным пользователем, создайте ChildAction, который возвращает нужные вам данные:

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

Затем используйте RenderAction вмнение так:

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

Во-вторых, я согласен с комментарием "Afshin Gh".Вместо того, чтобы передавать данные в «ActionLink (s)», вы можете кодировать их в своем контроллере для фильтрации данных по мере необходимости - как я показываю в методе «UserLinks» выше.Таким образом, кто-то не может просто манипулировать URL для отображения данных для другого клиента.

...