【问题标题】:Retrieving value from Database to use on welcome screen从数据库中检索值以在欢迎屏幕上使用
【发布时间】:2015-04-04 17:05:39
【问题描述】:

我有这个网站项目,当用户使用他们的电子邮件地址登录时,网站会欢迎他们。

[示例]http://gyazo.com/4789acfb6714a8be1bffc479b81af74f

[带有 Razor 语法的 HTML 代码]

<div style="width:auto;">
    @if (Request.IsAuthenticated)
    {
        <strong>Hello, @Html.Encode(User.Identity.Name)</strong>
        @Html.ActionLink("Log Out", "LogOut", "MyTemplate")
    }
    else
    {
        @Html.ActionLink("Register", "Registration", "MyTemplate")
        <span>|</span>
        @Html.ActionLink("Log In", "LogIn", "MyTemplate")
    }
</div>

但是,在注册过程中,用户需要输入名字。

如何从我目前拥有的数据库中检索此 FirstName?因此,它不会显示“admin@admin.com”,而是显示“admin”。

[数据库]http://gyazo.com/fc01763a97470c3ddf2e2e50f9f379a3

我知道第 4 行 (&lt;strong&gt;Hello, @Html.Encode(User.Identity.Name)&lt;/strong&gt;) 负责获取用户的电子邮件地址,但我不知道如何检索用户的名字。

编辑: 相关项目文件:https://gist.github.com/anonymous/cb481f973a7fa5840023

我遵循的教程和我在 Visual Studio 2013 中查看的基本模板只是使用 @Html.Encode(User.Identity.Name) 或 User.Identity.Name 来显示电子邮件部分/用户名。我不知道它是如何工作的:\

【问题讨论】:

    标签: html sql database asp.net-mvc-4 razor


    【解决方案1】:

    你基本上是这样做的:

    var name = new MyMainDBEntities().SystemUsers.First(u => u.Email == User.Identity.Name).Name;
    

    当然,这是一种快速而肮脏的方法。您仍然需要Dispose 的数据库并在控制器内部执行此操作。您现在正在做的是打破 UI 和后端数据之间的顾虑。

    【讨论】:

    • 您好,感谢您的回复。将这段代码放在哪里?在 _layout.cshtml 中?还是控制器的这一部分在某处?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2015-08-18
    • 1970-01-01
    • 2016-08-05
    相关资源
    最近更新 更多