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

ASP.NET Core 7 Razor Pages如何拼接SQL Server字段并格式化显示

实现方法

有两种常用方案可以满足你的需求,均仅用于展示,不会影响编辑等后续操作:

方案一:在模型中添加计算属性(推荐,适合多页面复用)

直接在HaloAssetNumbers模型类里添加一个只读计算属性,生成格式化后的拼接字段,同时用[NotMapped]标记告诉EF Core不要将该属性映射到数据库字段。

using System.ComponentModel.DataAnnotations.Schema;

public class HaloAssetNumbers
{
    public int Halo_Asset_Type { get; set; }
    public string Asset_Type_Prefix { get; set; }
    public int Asset_Last_Number { get; set; }

    // 只读计算属性,用于展示格式化后的资产编号
    [NotMapped]
    public string FormattedAssetNumber
    {
        get
        {
            string formattedNumber = Halo_Asset_Type switch
            {
                1 => Asset_Last_Number.ToString("D6"), // 补6位前导零
                2 => Asset_Last_Number.ToString("D7"), // 补7位前导零
                3 => Asset_Last_Number.ToString(),     // 直接显示数值
                _ => Asset_Last_Number.ToString()      // 默认情况,可按需调整
            };
            return $"{Asset_Type_Prefix}{formattedNumber}";
        }
    }
}

之后在Razor页面(比如Index.cshtml的表格中)直接调用该属性即可:

<td>@item.FormattedAssetNumber</td>

方案二:在Razor页面中直接处理(适合单一页面临时需求)

如果不想修改模型,可直接在页面展示逻辑里编写格式化代码,例如在表格单元格中:

<td>
    @{
        string formattedNumber;
        switch (item.Halo_Asset_Type)
        {
            case 1:
                formattedNumber = item.Asset_Last_Number.ToString("D6");
                break;
            case 2:
                formattedNumber = item.Asset_Last_Number.ToString("D7");
                break;
            case 3:
                formattedNumber = item.Asset_Last_Number.ToString();
                break;
            default:
                formattedNumber = item.Asset_Last_Number.ToString();
                break;
        }
        @($"{item.Asset_Type_Prefix}{formattedNumber}")
    }
</td>

注意事项

  • 两种方案都不会干扰编辑、新增等操作,因为拼接字段仅用于展示,未绑定表单控件或参与数据库交互。
  • 脚手架生成的编辑/新增页面默认只包含模型中映射到数据库的字段,无需额外修改来排除该展示字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:15:08