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

设置TempData[Member]后页面自动切换为深色模式的原因排查

表单提交错误处理异常:表单选项丢失与意外触发深色模式

我在处理表单提交的错误逻辑时,默认触发了一个错误场景,原始代码如下:

public async Task<IActionResult> OnPostSaveAsync()
{
    try
    {
        //var newMemberId = await SaveMemberAsync();
        var newMemberId = 0;

        if (newMemberId <= 0)
        {
            TempData["isError"] = true;
            TempData["errorMsg"] = "...";
            return Page();
        }
    }
    catch (Exception ex)
    {
        TempData["isError"] = true;
        // etc.
        return Page();
    }
}

这段代码功能正常,但提交错误后表单的下拉框等选项会被清空。为恢复表单提交前的选项值,我尝试在返回页面前添加TempData["Member"] = this.Member;,修改后的代码如下:

public async Task<IActionResult> OnPostSaveAsync()
{
    try
    {
        //var newMemberId = await SaveMemberAsync();
        var newMemberId = 0;

        if (newMemberId <= 0)
        {
            TempData["isError"] = true;
            TempData["errorMsg"] = "...";
            TempData["Member"] = this.Member;
            return Page();
        }
    }
    catch (Exception ex)
    {
        TempData["isError"] = true;
        // etc.
        return Page();
    }
}

修改后出现两个问题:页面自动切换为深色模式,且下拉框的历史选项仍未恢复。我搞不懂问题成因,也不知道该怎么诊断。

页面的错误提示标记代码如下:

@if(TempData["isError"] != null && (bool)TempData["isError"])
{
    <div class="callout callout-danger">
        <p>@TempData["errorMsg"].ToString()</p>
    </div>
}

另外,页面还出现了自定义代码中未定义的深色模式媒体查询,找不到#dcdcdc相关定义。

内容的提问来源于stack exchange,提问作者Logany-hi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:25:16