首页 > 解决方案 > ASP.Net Core 2.2 App 中身份控制器的扩展方法

问题描述

在我较旧的 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 Core 2.2 Web 应用程序中搭建身份页面时,由于不再有帐户控制器(我在 Core 中仍然不明白),因此如何创建这种类型的扩展?

标签: c#asp.net-core-2.0

解决方案


AccountController 只是一个包含用户帐户管理基本逻辑的脚手架类,您可以轻松地自己创建它。我做了 HomeController 包含 ChangePassword 操作方法和 HomePage 以及链接的预定义参数:

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);
        }
    }

书面扩展方法仍然有效


推荐阅读