为了账号安全,请及时绑定邮箱和手机立即绑定

从 Razor 视图调用 C# 方法?

从 Razor 视图调用 C# 方法?

C#
富国沪深 2022-12-31 13:50:42
我是 ASP.net 的新手,我正在尝试使用 MVC。我有一个使用 Linq 从 sql 数据库获取当前用户信息的方法。我如何将这些结果放入视图中并在网站的任何地方使用它们?我获取用户信息的方法:public List<AspNetUser> GetCurrentUser(){    FulfillmentContext db = new FulfillmentContext();    string username = HttpContext.Current.User.Identity.GetUserName();    var currentUser = (from u in db.AspNetUsers                    join ur in db.AspNetUserRoles on u.Id equals ur.UserId                    join r in db.AspNetRoles on ur.RoleId equals r.Id                    where u.UserName == username                    select u).ToList();    return currentUser;}
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

理想情况下,您应该将其加载到您的模型中:


public ActionResult Index()

{

    FulfillmentContext db = new FulfillmentContext();

    string username = 

    HttpContext.Current.User.Identity.GetUserName();


    var currentUser = (from u in db.AspNetUsers

                    join ur in db.AspNetUserRoles on u.Id equals ur.UserId

                    join r in db.AspNetRoles on ur.RoleId equals r.Id

                    where u.UserName == username

                    select u).First();


    var model = new Model();

    model.CurrentUser = currentUser;


    return View(model);    

}

但是,您可以创建一个 HTML 帮助程序扩展:


public static AspNetUser GetCurrentUser(this HtmlHelper helper)

{

    FulfillmentContext db = new FulfillmentContext();

    string username = HttpContext.Current.User.Identity.GetUserName();


    var currentUser = (from u in db.AspNetUsers

                    join ur in db.AspNetUserRoles on u.Id equals ur.UserId

                    join r in db.AspNetRoles on ur.RoleId equals r.Id

                    where u.UserName == username

                    select u).First();


    return currentUser;

}

然后从您的视图中调用它:


@{

    var user = Html.GetCurrentUser();

}


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号