我有一个foreach遍历剃刀语法中的项目,

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ColorCode)
        </td>
        <td>


            <div style="background-color:*************">&nbsp;&nbsp;&nbsp;</div>


        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.ID }) |
            @Html.ActionLink("Details", "Details", new { id = item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.ID })
        </td>
    </tr>
}


ColorCode是一个int值
,我定义了一个名为IntToColorHex的外部函数,将ColorCode转换为等效的十六进制值,我想根据ColorCode为每行用十六进制颜色值替换**************,我需要一些东西像下面这样:

<div style="background-color:IntToColorHex(@item.ColorCode)">&nbsp;&nbsp;&nbsp;</div>

最佳答案

您不能从样式属性调用js函数,所以这一行

<div style="background-color:IntToColorHex(@item.ColorCode)">&nbsp;&nbsp;&nbsp;</div>


只是渲染成类似

<div style="background-color:IntToColorHex(100000)">&nbsp;&nbsp;&nbsp;</div>


但是您可以使用简单的ToString with hexadecimal ("X") format specifier之类的

<div style="background-color:#@item.ColorCode.ToString("X6")">&nbsp;&nbsp;&nbsp;</div>

10-05 18:38