Методы расширения для контроллеров идентификации в приложении ASP.Net Core 2.2 - PullRequest
0 голосов
/ 31 декабря 2018

В моем более старом приложении 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}
            );
 }

Поскольку у вас больше нет контроллера учетных записей (чего я до сих пор не понимаю в Core), когда вы выкидываетеидентификационные страницы в стандартном веб-приложении Asp.Net Core 2.2, как можно создать расширение такого типа?

1 Ответ

0 голосов
/ 31 декабря 2018

AccountController - это просто scaffolded класс, содержащий базовую логику для управления учетными записями пользователей, вы можете легко создать ее самостоятельно.Я сделал 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);
        }
    }

Написанный метод расширения все еще работает хорошо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...