FAQ |
Kalender |
2014-06-19, 17:13 | #1 | ||
|
|||
Medlem
|
Hej, ny på ASP.NET MVC,
Ska lista upp en ToDo lista som är kopplad till en användare. Koden funkar men känns som att det borde finnas nått annat sätt / "rätt" sätt att hämta ut användare.ID?? // GET: /ToDo/ public ActionResult Index() { var id = (new AccountController()).UserManager.FindByName(User.I dentity.Name).Id; var todoes = db.ToDoes.Where(u => u.UserId == id); return View(todoes.ToList()); } |
||
Svara med citat |
2014-06-21, 03:29 | #2 | ||
|
|||
Flitig postare
|
nja, Eftersom det funkar känns det ju mer som ett "best practices fall"
vilken typ av inloggning använder du ? SimpleMembership eller den gamla klassiska membership-provider lösningen? För SimpleMembership så får du lägga till [InitializeSimpleMembership] till din controller och sedan int currentUserId = (int) Membership.GetUser().ProviderUserKey; I övrigt så är jag ju "arbetsskadad" och tycker att du skall flytta ut var todoes = db.ToDoes.Where(u => u.UserId == id); till ett service-lager ( för mer läsning om detta: http://www.asp.net/mvc/tutorials/old...ely-coupled-cs) även om din metod i dagsläget är rätt "smal" så kanske det i framtiden dyker upp ett scenario där du skall kolla om en viss användare verkligen får se vissa saker eller liknande Controller-metoder skall innehålla så lite kod som möjligt det du vill ha (ja det vill du) är nånting i stil med Kod:
[Authorize] public ActionResult Index() { var id =(int) Membership.GetUser().ProviderUserKey; return View(ToDoListService.GetByUser(id)); } |
||
Svara med citat |
2014-06-21, 12:12 | #3 | |||
|
||||
Flitig postare
|
Ni ska nog kolla på asp.net identity som är det nya och ersätter simplemembership och den gamla membership-providern : http://www.asp.net/identity
|
|||
Svara med citat |
Svara |
|
|