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

如何使用MVC Razor实现基于日期动态切换文本功能

MVC Razor 实现日期切换显示文本的可行方案

方案1:视图直接硬编码判断(最简实现)

直接在.cshtml视图中嵌入C#逻辑即可完成判断,无需修改控制器代码:

<!-- 写法1:分支判断结构 -->
<div id="test">
    @if (DateTime.Now > new DateTime(2021, 12, 5))
    {
        <text>A</text>
    }
    else
    {
        <text>B</text>
    }
</div>

<!-- 写法2:三元表达式精简写法 -->
<div id="test">
    @(DateTime.Now > new DateTime(2021, 12, 5) ? "A" : "B")
</div>

注意:该方案取的是服务器端当前时间,和你之前JavaScript实现取的用户本地设备时间可能存在时区差异,如果业务需要严格对齐用户本地时间,可参考方案3


方案2:控制器传参实现(适合可配置场景)

如果日期阈值需要从配置文件、数据库动态读取,不要硬编码在视图中,可以通过控制器传值:

控制器代码示例

public IActionResult YourPage()
{
    // 阈值可从配置/数据库动态获取,此处仅为示例
    ViewBag.SwitchDate = new DateTime(2021, 12, 5);
    return View();
}

视图代码示例

<div id="test">
    @(DateTime.Now > ViewBag.SwitchDate ? "A" : "B")
</div>

方案3:结合JS保留客户端时间判断(对齐原JS逻辑)

如果需要完全和之前的JS逻辑一致,使用用户本地设备时间做判断,可以用Razor动态输出阈值,前端做判断:

<div id="test"></div>

@section Scripts
{
    <script>
        document.getElementById('test').innerHTML = new Date() > new Date('@new DateTime(2021,12,5).ToString("yyyy-MM-dd")') ? 'A' : 'B';
    </script>
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:45:02