我在剃刀视图中循环浏览数据集。我是 MVC 和 Razor 的新手。ASP.net 背景。
@foreach (System.Data.DataRow _row in Model.Rows)
{
<tr>
<td>@_row["FileNameShort"].ToString()</td>
<td>@_row["FileSize"]</td>
<td><a href="DocViewer.aspx?rowid=@_row["ID"].ToString()">View</a></td>
</tr>
}
我需要文件大小以 MB、GB、KB 为单位。它以字节为单位。我在视图上放置了一个函数来格式化它。我在其他地方找到的东西,但它应该可以正常工作。
@functions {
List<string> suffixes = new List<string> { " B", " KB", " MB", " GB", " TB", " PB" };
string Numeric2Bytes(int number)
{
for (int i = 0; i < suffixes.Count; i++)
{
int temp = number / (int)Math.Pow(1024, i + 1);
if (temp == 0)
return (number / (int)Math.Pow(1024, i)) + suffixes[i];
}
return number.ToString();
}
string test(int number)
{
return number.ToString();
}
}
如果我这样做:
<td>Numeric2Bytes(@_row["FileSize"])</td>
它抱怨它是一个无效的参数,即使它在数据集中是一个 INT。
做我需要做的最好的方法是什么?