You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Razor Pages应用的不同页面之间传递变量?

Razor Pages 跨页面传递字符串变量实现方案

下面是三种最常用的实现方式,可根据你的业务场景选择:

1. Query String 传参(推荐非敏感短字符串使用)

  • 优势:实现最简单,不需要额外配置,适合传递长度较短的非敏感数据
  • 实现步骤:

跳转端(signup页面)

如果是后端逻辑跳转,在signup.cshtml.cs的处理方法中调用RedirectToPage时传入路由参数:

public IActionResult OnPost()
{
    // 替换为你要传递的实际字符串变量
    string targetString = "注册成功的提示信息/已注册邮箱";
    return RedirectToPage("./signin", new { customParam = targetString });
}

如果是前端直接跳转,直接在标签中绑定路由参数:

<!-- signup.cshtml 前端代码 -->
<a asp-page="./signin" asp-route-customParam="@你要传递的字符串变量">前往登录页</a>

接收端(signin页面)

在signin.cshtml.cs中添加属性并绑定Get参数即可直接读取:

public class SigninModel : PageModel
{
    [BindProperty(SupportsGet = true)]
    public string CustomParam { get; set; }

    public void OnGet()
    {
        // 此处CustomParam就是从signup页面传递过来的值
    }
}

2. TempData 传参(推荐单次读取场景使用)

  • 优势:参数不会暴露在URL中,读取后自动销毁,适合传递仅需展示一次的提示类内容
  • 实现步骤:

跳转端(signup页面)

public IActionResult OnPost()
{
    string targetString = "注册成功,请登录";
    TempData["CustomKey"] = targetString;
    return RedirectToPage("./signin");
}

接收端(signin页面)

public void OnGet()
{
    string receivedString = TempData["CustomKey"] as string;
    // 读取后TempData的对应值会自动清除,刷新页面后无法二次获取
    // 如果需要保留值,可调用 TempData.Keep("CustomKey")
}

3. Session 存储(推荐多页面复用数据场景使用)

  • 优势:数据会在你配置的有效期内一直存在,可跨多个页面访问
  • 实现步骤:
    首先需要在项目的Program.cs中配置Session服务:
// 添加Session服务
builder.Services.AddSession(opt =>
{
    opt.IdleTimeout = TimeSpan.FromMinutes(20); // 自定义过期时间
    opt.Cookie.HttpOnly = true;
    opt.Cookie.IsEssential = true;
});

// 中间件配置,需放在UseRouting和UseAuthorization之间
app.UseSession();

赋值(signup页面)

public IActionResult OnPost()
{
    string targetString = "需要跨页面共享的字符串";
    HttpContext.Session.SetString("SessionKey", targetString);
    return RedirectToPage("./signin");
}

读取(signin页面)

public void OnGet()
{
    string receivedString = HttpContext.Session.GetString("SessionKey");
    // 有效期内任意页面都可读取该值
}

内容的提问来源于stack exchange,提问作者Eric Neuwirth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:54:08