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

ASP.NET Core Razor Pages如何根据单选按钮选择条件跳转页面

问题修复步骤

1. 修改前端单选按钮绑定

你的前端单选按钮name属性和后端绑定的属性名不匹配,无法将选择结果传递到后端,修改代码如下:

<div class="form-group ">
    <div class="form-check form-check-inline">
        <input class="form-check-input" type="radio" name="SexSelection" id="inlineRadio1" value="Boy" checked>
        <label class="form-check-label" for="inlineRadio1">男孩</label>
    </div>
    <div class="form-check form-check-inline">
        <input class="form-check-input" type="radio" name="SexSelection" id="inlineRadio2" value="Girl">
        <label class="form-check-label" for="inlineRadio2">女孩</label>
    </div>
</div>

修改说明:将name属性改为和后端[BindProperty]修饰的SexSelection属性完全一致,value改为语义化值方便后续判断。

2. 修正后端OnPostAsync跳转逻辑

你当前的跳转逻辑是登录成功跳男孩页,登录失败跳女孩页,完全不符合需求,修改OnPostAsync方法的判断逻辑:

public async Task<IActionResult> OnPostAsync(string returnUrl = null)
{
    returnUrl ??= Url.Content("~/");
    ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();

    if (ModelState.IsValid)
    {
        var result = await _signInManager.PasswordSignInAsync(Input.Correo, Input.Contraseña, Input.RememberMe, lockoutOnFailure: false);
        if (result.Succeeded)
        {
            _logger.LogInformation("用户登录成功");
            // 根据性别选择跳转对应页面
            if (SexSelection == "Boy")
            {
                return RedirectToPage("./boysNames");
            }
            else if (SexSelection == "Girl")
            {
                return RedirectToPage("./girlsNames");
            }
            // 默认跳转兜底
            return LocalRedirect(returnUrl);
        }
        else
        {
            // 登录失败时添加错误提示,返回登录页
            ModelState.AddModelError(string.Empty, "登录尝试无效,请检查邮箱或密码");
        }
    }
    // 验证失败或登录失败都返回登录页
    return Page();
}

修改说明:登录成功后才判断性别选择结果跳转对应页面,登录失败时停留在当前登录页并抛出错误提示,避免未登录用户直接访问内部页面。

可选优化

可以给SexSelection加个默认值避免空值异常:

[BindProperty, Required]
public string SexSelection { get; set; } = "Boy";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:02