如何将UserProfile模型传递给查看?

时间:2013-12-09 14:43:12

标签: asp.net-mvc simplemembership

我正在尝试在我的应用程序中实现简单的成员资格。我的问题是我希望能够在当前用户的userprofile表中显示数据,但我不知道如何从数据库中选择它

我试过这个但是我收到了一个错误:

    UserProfile UserP = new UserProfile();

        ViewBag.Message = User.Identity.Name;
        return View();

        UserP = (from r in up.UserName
                  where up.UserName == User.Identity.Name.ToString()
                  select r).ToList().FirstOrDefault();


        return View(UserP);

这是错误:

            Error   1   Cannot implicitly convert type 'char' to 'MvcApplication5.Models.UserProfile'   C:\Users\user\Desktop\MvcApplication5\MvcApplication5\Controllers\HomeController.cs 31  32  MvcApplication5

2 个答案:

答案 0 :(得分:0)

如果我说得对(你的代码有点破,它有两个返回,所以我假设只有两段代码),试试这个:

UserP = (from r in up
                  where up.UserName == User.Identity.Name.ToString()
                  select r).FirstOrDefault();

在查询中删除up.UserName。

。也不需要ToList()

P.S。对于未来:

我还建议您添加另一个名为LoweredUserName的列,并按以下方式执行检查:

where up.LoweredUserName == User.Identity.Name.ToString().ToLower()

答案 1 :(得分:0)

以下是访问UserProfile的方法。

var context = new UsersContext();
var username = User.Identity.Name;
var user = context.UserProfiles.SingleOrDefault(u => u.UserName == username);
return View(user);

有关customizing the UserProfile and accessing it read this article的更多信息。