ASP.NET Core MVC中实现价格整数的千位逗号分隔显示
在ASP.NET Core MVC中实现印度卢比风格的价格格式化
针对你的需求,以下几种简单直接的方法可以实现整数价格的印度千位逗号分隔格式(如1,000、1,00,000):
方法一:视图内直接格式化
直接在Razor视图中对价格值进行区域化格式化,使用印度英语文化(en-IN)的数字格式规则:
修改你的视图代码:
<p>PKR @(item.price?.ToString("N", System.Globalization.CultureInfo.GetCultureInfo("en-IN")) ?? "0")</p>
- 说明:
"N"指定数字格式,搭配en-IN文化会自动应用印度的千位分隔规则;?.处理price为null的场景,?? "0"确保空值时显示默认值0。
方法二:模型中添加计算属性(推荐)
为了保持视图代码简洁,可在数据库映射的RentModel实体类中添加只读计算属性:
修改实体类RentModel:
public class RentModel { // 原有属性 public int? price { get; set; } // 添加格式化后的价格属性 public string FormattedPrice { get { return price?.ToString("N", System.Globalization.CultureInfo.GetCultureInfo("en-IN")) ?? "0"; } } }
之后在视图中直接调用该属性:
<p>PKR @item.FormattedPrice</p>
方法三:全局设置默认文化(可选)
如果整个应用都需要使用印度区域格式,可在Program.cs中全局配置默认文化:
var builder = WebApplication.CreateBuilder(args); // 配置全局本地化 builder.Services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new[] { "en-IN" }; options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en-IN"); options.SupportedCultures = supportedCultures.Select(c => new System.Globalization.CultureInfo(c)).ToList(); options.SupportedUICultures = options.SupportedCultures; }); // 其他服务配置... var app = builder.Build(); // 启用本地化中间件 app.UseRequestLocalization(); // 其他中间件配置...
配置完成后,视图中只需简单调用格式化方法:
<p>PKR @(item.price?.ToString("N") ?? "0")</p>
内容的提问来源于stack exchange,提问作者Qasim Asghar
相关产品推荐
相关产品推荐

