如何从 RazorPageModel 重定向到控制器方法?

Zhi Lv - MSFT 32,446 信誉分 Microsoft 供应商
2024-03-12T02:55:03.1766667+00:00

你好,

这个问题很简单,但我仍然困在这里。

我在 Identity\Pages\RazorPageModel.cshtml.cs 中有一个 RazorPageModel,其中发生了这种情况:

public async Task<IActionResult> OnPostAsync()         {
	...
	return RedirectToPage("~/ControllerName/ControllerMethodName", new { info = n });
	or
	return Redirect("~/ControllerName/ControllerMethodName?info=" + n);
}

我无法进入ControllerMethodName控制器方法并将数据传递到那里。

我以不同的方式尝试过,结果都显示 HTTP ERROR 404崩溃了。

如何从 RazorPageModel 重定向到控制器方法?

谢谢! 注意: 此问题总结整理于:如何从 RazorPageModel 重定向到控制器方法?

ASP.NET Core
ASP.NET Core
.NET Framework 中一套用于生成 Web 应用程序和 XML Web 服务的技术。
32 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. XuDong Peng-MSFT 10,746 信誉分 Microsoft 供应商
    2024-03-12T06:36:22.9533333+00:00

    你好,

    你可以使用RedirectToAction 方法来重定向到控制器方法,参考下面示例代码:

    1. Test.cshtml.cs 位于 Areas\Identity\Pages:
    public class TestModel : PageModel
    {
        public async Task<IActionResult> OnGet()
        {
            return RedirectToAction("Index","Sales", new { area = "Customer",info = 1234 }); ;          
        }
    }
    
    1. Index.cshtml 位于 Areas\Customer\Views\Sales, SalesControllerAreas\Customer\Controllers 中:

    User's image

    [Area("Customer")]
    public class SalesController : Controller
    {
         public IActionResult Index(int info)
         {
             return View();
         }
    }
    
    1. Program.cs:
    var builder = WebApplication.CreateBuilder(args);
    // Add services to the container...
    builder.Services.AddControllersWithViews();
    builder.Services.AddRazorPages()
    var app = builder.Build();
    //other middleware....
    app.UseRouting();
    app.UseAuthentication();
    app.UseAuthorization();
    
    app.MapControllerRoute(
        name: "MyArea",
        pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    app.MapRazorPages();
    
    app.Run();
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。