Вызовите метод C # из Razor View? - PullRequest
0 голосов
/ 26 апреля 2019

Я очень новичок в ASP.net. Я пытаюсь использовать MVC. У меня есть метод, который получает информацию о текущих пользователях из базы данных SQL с помощью Linq. Как я могу получить эти результаты в вид и использовать их в любом месте на сайте?

Мой метод получения информации о пользователе:

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 Ответ

1 голос
/ 26 апреля 2019

В идеале вы должны загрузить его в свою модель:

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...