Converting/parsing 查询结果为字符串 .NET Core
Converting/parsing query results to string .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(var a in 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")
尽管这是可能的,但是,我认为添加 [DisplayFormat(DataFormatString = "{0:00000.00}")]
是最简单的方法:
public class Dish
{
public int DishID { get; set; }
[DisplayFormat(DataFormatString = "{0:00000.00}")]
public decimal? DishPrice { get; set; }
}
我正在使用 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(var a in 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")
尽管这是可能的,但是,我认为添加 [DisplayFormat(DataFormatString = "{0:00000.00}")]
是最简单的方法:
public class Dish
{
public int DishID { get; set; }
[DisplayFormat(DataFormatString = "{0:00000.00}")]
public decimal? DishPrice { get; set; }
}