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

У меня есть проблема, похожая на эту тему http://forums.asp.net/t/1763534.aspx/1

Я должен показывать данные клиентам, основываясь на их имени пользователя. Я не создаю новую тему, потому что я сделал это давно, и никто не ответил. Я спрашиваю вас, потому что вы, кажется, знаете это больше, чем другие ...

Это мой контроллер

public ActionResult Index()
{
    MembershipUser currentUser = 
        Membership.GetUser(User.Identity.Name, true /* userIsOnline */);


    ViewBag.UsersRecord = currentUser.ProviderUserKey;

    var details = from t in db.Employes
                  where t.UserId ==ViewBag.UsersRecord
                  select t;

    return View(details.ToList());

}

Странно, Visual Studio показывает мне ошибку здесь

where t.UserId == ViewBag.UsersRecord

"Дерево выражений не может содержать динамический динамик"

Я сделал что-то не так?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2012

Вы не можете использовать динамический, так как динамический определяется во время компиляции.попробуйте:

Guid userId = (Guid)ViewBag.UsersRecord;

var details = from t in db.Employes
                  where t.UserId == userId.ToString() //if you are using a string guid, otherwise remove ToString()
                  select t;

//or simply

var details = from t in db.Employes
                  where t.UserId == (Guid)currentUser.ProviderUserKey
                  select t;

Я не знаю, какой у вас идентификатор пользователя (наберите мудро), поэтому не могу дать вам 100% ответ здесь

0 голосов
/ 21 февраля 2012

Что по этому поводу:

where t.UserId == new Guid(ViewBag.UsersRecord.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...