登录后如何显示用户名

时间:2019-04-23 10:12:39

标签: c# asp.net-mvc entity-framework linq

我正在使用linq学习C#MVC。现在我不知道登录后如何发送用户名

如何从数据库发送用户名进行查看?

public ActionResult Login(Login log)
{
    using (var dbs = new guruEntities())
    {
        var check = dbs.Logins.FirstOrDefault(x => x.Name == log.Name && x.Password == log.Password);
        if (check != null)
        {
            return RedirectToAction("Success");
        }
        else
        {
            ViewBag.msg = "Wrong data";
        }
    }
    return View("Login");
}

public ActionResult Success(Login log)
{
    using (var dbs = new guruEntities())
    {
        var check = dbs.Logins.FirstOrDefault(x => x.Name == log.Name && x.Password == log.Password);

        return View();
    }
}

查看:

<div> 
    Welcome <!--How do I display the Username here? -->
</div>

4 个答案:

答案 0 :(得分:2)

因为您使用重定向,所以需要使用TempData来保持用户名不变。

 public ActionResult Login(Login log)
    {
        using (var dbs = new guruEntities())
        {
            var check = dbs.Logins.FirstOrDefault(x => x.Name == log.Name && x.Password == log.Password);
            if (check != null)
            {
                TempData["UserName"] = check.Name;
                return RedirectToAction("Success");
            }
            else
            {
                ViewBag.msg = "Wrong data";
            }
        }
        return View("Login");
    }

您认为

<div> 
    Welcome @TempData["UserName"]
</div>

答案 1 :(得分:0)

您可以将值保存在 ViewBag ViewData TempData 对象中,并在与Session对象相同的视图上显示。

在您的情况下,我认为TempData会很好,因为您正从1个ActionMethod重定向到另一个ActionMethod。

请检查此链接,如何使用TempData here

答案 2 :(得分:0)

您有一个视图(成功页面),因此该页面上的属性应该具有ViewModel:

public class SuccessViewModel 
{
    public string Name {get;set;}
}

public ActionResult Success(Login log)
{
    using (var dbs = new guruEntities())
    {
    var check = dbs.Logins.FirstOrDefault(x => x.Name == log.Name && x.Password == log.Password);

        var vm = new SuccessViewModel { Name = log.Name };

        return View(vm);
    }
}

查看:

@Model SuccessViewModel
<div> 
    Welcome @model.Name 
</div>

答案 3 :(得分:0)

检查成功后,将用户名添加到会话中,然后使用than会话在前端显示内容。我的语法可能有点错误,但应该可以给您一个提示。

if (check != null)
{
    Session.Add("Username", check.Name);
    return RedirectToAction("Success");
}

前端

<div> 
    Welcome @Session["Username"]
</div>

我建议使用会话,因为您可以设置一次,然后多次使用,而不仅仅是一次重定向。