代码之家  ›  专栏  ›  技术社区  ›  dinotom

asp.net core 2.2app中身份控制器的扩展方法

  •  1
  • dinotom  · 技术社区  · 6 年前

    在我以前的mvc应用程序中,我有一些扩展方法,如下所示

     public static string ChangePasswordCallbackLink(this IUrlHelper urlHelper, string appUserId, string parameter)
     {
         return urlHelper.Action(
                action: nameof(AccountController.ChangePassword),
                controller: "Account",
                values: new { appUserId, parameter}
                );
     }
    

    由于当您在默认的ASP.NET Core2.2 Web应用程序中构建标识页时,不再有帐户控制器(我在Core中仍然不了解这一点),如何创建这种类型的扩展?

    1 回复  |  直到 6 年前
        1
  •  0
  •   svoychik    6 年前

    accountcontroller只是一个框架类,包含用于用户帐户管理的基本逻辑,您可以自己轻松地创建它。 我做了包含changepassword操作方法的homecontroller和带有链接预定义参数的主页:

    public static class Extensions
        {
            public static string ChangePasswordCallbackLink(this IUrlHelper urlHelper, string appUserId, string parameter)
            {
                return urlHelper.Action(
                    action: nameof(HomeController.ChangePassword),
                    controller: "Home",
                    values: new { appUserId, parameter }
                );
            }
        }
        public class HomeController : Controller
        {
            public IActionResult ChangePassword(string appUserId, string parameter)
            {
                return View();
            }
            public IActionResult Index()
            {
                var link = Url.ChangePasswordCallbackLink("123", "qwerty");
                return View(model: link);
            }
        }
    

    书面扩展方法仍然有效