Пасс ASP.NET identity идентификатор пользователя для url-адреса
Всем привет
Я реализовал страницу редактирования для asp.net таблица идентификационных данных пользователя
Я хочу передать Id в действие, чтобы найти пользователя
но я должен добавить Id в конец Url-адреса, чтобы дать мне представление
как я могу это сделать?
или позвоните мне, если есть лучший способ посмотреть!
спасибо
//edit.cshtml @using (Html.BeginForm()) { @Html.HiddenFor(x => x.Id) <div class="form-group"> <label>Email</label> @Html.TextBoxFor(x => x.Email, new { @class = "form-control" }) </div>
Что я уже пробовал:
//UserController using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using AuthenticationUsers.Models; using System.Threading.Tasks; using Microsoft.AspNet.Identity; using Microsoft.AspNet.Identity.Owin; namespace AuthenticationUsers.Controllers { public class UserController : Controller { public ActionResult Index() { return View(UserManager.Users); } public async Task<ActionResult> Edit(string Id) { WorldUser user = await UserManager.FindByIdAsync(Id); if (user != null) { ViewBag.Id = Id; return View(user); } else { return RedirectToAction("Index"); } } [HttpPost] public async Task<ActionResult> Edit(string Id, string email, string password) { WorldUser user = await UserManager.FindByIdAsync(Id); if (user != null) { user.Email = email; IdentityResult validEmail = await UserManager.UserValidator.ValidateAsync(user); if (!validEmail.Succeeded) { AddErrorsFromResult(validEmail); } IdentityResult validPass = null; if (password != string.Empty) { validPass = await UserManager.PasswordValidator.ValidateAsync(password); if (validPass.Succeeded) { user.PasswordHash = UserManager.PasswordHasher.HashPassword(password); } else { AddErrorsFromResult(validPass); } } if ((validEmail.Succeeded && validPass == null) || (validEmail.Succeeded && password != string.Empty && validPass.Succeeded)) { IdentityResult result = await UserManager.UpdateAsync(user); if (result.Succeeded) { return RedirectToAction("Index"); } else { AddErrorsFromResult(result); } } } else { ModelState.AddModelError("", "User Not Found"); } return View(user); } private void AddErrorsFromResult(IdentityResult result) { foreach (string error in result.Errors) { ModelState.AddModelError("", error); } } private AppUserManager UserManager { get { return HttpContext.GetOwinContext().GetUserManager<AppUserManager>(); } } } }
//routeconfig using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace AuthenticationUsers { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "app", action = "Index", id = UrlParameter.Optional } ); } } }