カミソリ ビューでデータセットをループしています。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であっても、無効な引数であると不平を言います。
私がする必要があることをするための最良の方法は何ですか?