如何用 Razor Pages 路由替换 MVC HomeController/Index 重定向?

2024-01-11

我正在从 ASP MVC Classic 迁移到 ASP Razor Pages。

只剩下一个控制器需要“迁移”:HomeController

 public class HomeController : Controller
 {
        UserManager<WebUser> _userManager;

        public HomeController(UserManager<WebUser> _userManager)
        {
            this._userManager = _userManager;
        }

        [Authorize]
        public async Task<IActionResult> Index()
        {
            var user = await _userManager.GetUserAsync(User);
            if (user == null)
            {
                return RedirectToPage("/Account/Login", new { area = "WebUserIdentity" });
            }
            return RedirectToPage("/Index", new { area = "Downloads" });
        }
 }

该控制器/操作没有对应的视图。

因此,我陷入了困境:如何配置剃刀页面的路由以使用这些重定向(到两个不同的区域)而不创建“假”索引页面?


我相信您可以转换控制器来为索引页创建页面模型Pages/IndexModel并执行相同的重定向。

public class IndexModel : PageModel {
    UserManager<WebUser> _userManager;

    public IndexModel(UserManager<WebUser> _userManager) {
        this._userManager = _userManager;
    }

    public async Task<IActionResult> OnGetAsync() {
        var user = await _userManager.GetUserAsync(User);
        if (user == null) {
            return RedirectToPage("/Account/Login", new { area = "WebUserIdentity" });
        }
        return RedirectToPage("/Index", new { area = "Downloads" });
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用 Razor Pages 路由替换 MVC HomeController/Index 重定向? 的相关文章

随机推荐

  • iOS Safari/Chrome 不会向上滚动以在无线电输入上显示验证错误消息

    我正在为需要移动设备友好的客户设置一份调查问卷 当表单提交 验证并且问题未得到回答时 它会滚动到第一个无效字段 无论是文本输入还是无线电输入 这仅适用于桌面浏览器和 Android 在 iOS Safari Chrome 上 文本输入按应有
  • mat-menu 穿透“cdk 覆盖雾”

    This 堆栈闪电战 https stackblitz com edit angular txgxyt file styles css SB 显示了问题 CSS类 WHYYYYY显示了我面临的 两个 问题 为了使垫菜单在悬停时打开 我需要设
  • Linux 共享内存:shmget() 与 mmap()?

    In this https stackoverflow com questions 5656530 how to use shared memory with linux in c建议OP使用线程mmap 代替shmget 在 Linux
  • DynamoDB 1 个大表还是多个小表?

    我目前面临一些有关数据库设计的问题 目前我正在开发一个 API 它可以让用户执行以下操作 创建帐户 1 个用户拥有 1 个帐户 创建配置文件 1 个帐户拥有 1 n 个配置文件 让个人资料上传 2 种类型的项目 1 个个人资料拥有 0 n
  • 关于 c++11 中的 std::result_of

    据我所知 可能的实施std result of is template
  • 如何在 jquery 中使元素既可拖动又可调整大小?

    如何在 jquery 中使元素既可拖动又可调整大小 可拖动和可调整大小都支持链接模式 因此您可以在一行中简化代码 假设你有一个div 并且该div的id是你想要使其可拖动和可调整大小的标题 然后jquery将像这样工作 document r
  • MonoTouch:从 ALAssetsLibrary.AssetForUrl 中获取图像

    在 MonoTouch 中 我正在将相机中的图像放入相册中 ALAssetsLibrary library new ALAssetsLibrary library WriteImageToSavedPhotosAlbum photo CGI
  • 使用 ORM 时跟踪数据库字段的更改

    我想跟踪对特定表中每一列所做的更改 我考虑将更改存储在另一个包含以下列的表中 id field and data where field 字符串值 是目标表中已更改的列data是该字段的新值 在返回数据集时 我想到从目标表中检索原始数据 从
  • Laravel 阻止用户访问其他用户资源 **url

    我在 url 中传递特定资源 例如 https www example com https www example com 公司ID 在控制器中我可以通过以下方式访问资源 public function index companyID Co
  • 在flutter中刷新令牌

    我正在开发一个金融项目 Flutter 其中从后端获取身份验证令牌经常过期 我怎样才能保留token只要过期用户正在使用该应用程序 我建议您可以以简单的方式处理这些事情 例如在获取数据时 如果令牌过期 您会收到 401 未经授权的异常 您可
  • 修改 iframe.src 而不进入历史对象

    我的网页中有一个 iframe 我通过 javascript 修改 src 属性 如下所示 document getElementById myiframe src http vimeo com videoid1 document getE
  • Installshield 无提示卸载在命令行中不起作用

    我们有一个 2006 年的旧应用程序 我们想使用组策略在命令行卸载 但我无法进行静默卸载 这有效 当然我需要点击下一步来卸载 C App Setup exe uninst 但事实并非如此 我看到沙漏了几秒钟 但该应用程序并未卸载 C App
  • 是否可以将 JFrame 置于前面但不获得焦点?

    我正在编写一个 Java 应用程序 Swing GUI 它会定期弹出 JFrame 是否有可能以某种方式将窗口置于前面 foo setAlwaysOnTop true 会更好 但是without有焦点吗 有些人在打字时时不时地将眼睛从屏幕上
  • 可扩展的非矩形 CSS 按钮?

    在网上进行了大量研究后 我发现了很多使用 CSS 设计提交按钮样式的建议和示例 但它们都生成了矩形按钮 我想制作一个非矩形按钮 它会自动调整自身大小以适合按钮图例 具体来说 我希望按钮看起来像这样 加上或减去圆角 有什么建议么 完全可以使用
  • 为什么我会收到“由于保护级别而无法访问”错误?

    我收到此错误 由于其保护级别 CTest A A 无法访问 编译此代码时 public class A private A public class B A public void SayHello Console WriteLine He
  • 如何子类化 QSpinBox 以便它可以将 int64 值作为最大值和最小值

    我需要实施一个QSpinBox控制应该能够处理int64值作为其最小值和最大值 目前的实现仅支持int32价值观 一天结束我的QSpinBox应该接受之间的任何值 9223372036854775807 和 9223372036854775
  • GSON disableHtmlEscaping - 为什么 GSON 默认情况下会转义 HTML?

    我注意到 GSON HTML 转义 lt and gt 字符 这可以通过使用禁用disableHtmlEscaping 构建器配置方法 但我的问题是 为什么 GSON 默认情况下会进行 HTML 转义 不进行 HTML 转义有哪些风险 Th
  • R 中的时间序列交叉验证:使用 csv() 和 tslm()-模型

    我目前正在尝试使用时间序列交叉验证来评估 tslm 模型 我想使用固定模型 不进行参数重新估计 来查看去年评估期的 1 到 3 步预测 我很难得到tsCV and tslm从预测库中可以很好地协同工作 我缺少什么 library forec
  • 如何在 robocopy 中使用 /mir /xd 开关时排除目标中的子目录

    正在运行一个脚本 它将一堆文件夹从一个卷镜像到另一个卷 问题是 现在目标文件夹中的子目录不属于原始镜像脚本的一部分 它们是独立的子目录 我不希望在镜像启动后清除它们 有没有办法让我使用 xd在 robocopy 中切换 我可以排除目标子目录
  • 如何用 Razor Pages 路由替换 MVC HomeController/Index 重定向?

    我正在从 ASP MVC Classic 迁移到 ASP Razor Pages 只剩下一个控制器需要 迁移 HomeController public class HomeController Controller UserManager