asp.net - 将查询结果转换/解析为字符串 .NET Core
问题描述
我正在使用 ASP.NET Core 2.2。我想将从数据库中获取的数据转换为字符串。这是我的Dish模型
public class Dish
{
public int DishID { get; set; }
public decimal? DishPrice { get; set; }
}
这是MyController
public class MyController : Controller
{
public IActionResult MyView()
{
var Dishes = _context.Dish.OrderBy(d =>d.DishID).ToList();
return View(Dishes)
}
}
最后是MyView
@model Dish
foreach(var a in Model)
{
<h1> @a.DishPrice </h1>
}
问题是当我检查 DishPrice 数据类型时,它是十进制的。我希望控制器传递给视图的所有数据都是一个字符串。
解决方案
您可以转换:@Model
之前的迭代。似乎您的模型应该是IQueryable<Dish>
@model IQueryable<Dish> foreach(Model.Select(d => new {DishId = d.DishID, DishPrice = String.Format("{0:00000.00}",d.DishPrice)})) { <h1> @a.DishPrice </h1> }
正如@Panagiotis Kanavos所建议的,上面的代码可以写成:
@a.DishPrice?.ToString("00000.00")
尽管这是可能的,但是,我相信添加 a[DisplayFormat(DataFormatString = "{0:00000.00}")]
是最简单的方法:
public class Dish
{
public int DishID { get; set; }
[DisplayFormat(DataFormatString = "{0:00000.00}")]
public decimal? DishPrice { get; set; }
}
推荐阅读
- xamarin.forms - 升级到 Xamarin.Forms 3.6 后出现 Xamarin.UWP 错误
- c# - Expression.Lambda getter 函数编译
- python - Is there a faster way to check for a bunch of things in a list/set?
- jquery - Animated progressbar list Counter only count last aria-valuenow
- python-3.x - How can I get curses installed for CentOS 6.10 with Python3.6.4?
- animation - Flutter - 从父类或另一个子类调用子类的动画函数
- javascript - how can i setup auto send email to me when click the link
- c# - 使用 C# 以编程方式“单击”网站链接
- java - IBM Redis 数据库 + 春季启动
- javascript - 如何从 Electron 上的预加载脚本中的渲染进程访问 jquery