猿问

从 Razor 视图调用 C# 方法?

我是 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;

}


富国沪深
浏览 79回答 1
1回答

慕的地8271018

理想情况下,您应该将其加载到您的模型中:public ActionResult Index(){&nbsp; &nbsp; FulfillmentContext db = new FulfillmentContext();&nbsp; &nbsp; string username =&nbsp;&nbsp; &nbsp; HttpContext.Current.User.Identity.GetUserName();&nbsp; &nbsp; var currentUser = (from u in db.AspNetUsers&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; join ur in db.AspNetUserRoles on u.Id equals ur.UserId&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; join r in db.AspNetRoles on ur.RoleId equals r.Id&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; where u.UserName == username&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select u).First();&nbsp; &nbsp; var model = new Model();&nbsp; &nbsp; model.CurrentUser = currentUser;&nbsp; &nbsp; return View(model);&nbsp; &nbsp;&nbsp;}但是,您可以创建一个 HTML 帮助程序扩展:public static AspNetUser GetCurrentUser(this HtmlHelper helper){&nbsp; &nbsp; FulfillmentContext db = new FulfillmentContext();&nbsp; &nbsp; string username = HttpContext.Current.User.Identity.GetUserName();&nbsp; &nbsp; var currentUser = (from u in db.AspNetUsers&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; join ur in db.AspNetUserRoles on u.Id equals ur.UserId&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; join r in db.AspNetRoles on ur.RoleId equals r.Id&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; where u.UserName == username&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select u).First();&nbsp; &nbsp; return currentUser;}然后从您的视图中调用它:@{&nbsp; &nbsp; var user = Html.GetCurrentUser();}
随时随地看视频慕课网APP
我要回答