有没有办法根据属性值使MVC Html.Actionlink不可见

时间:2011-08-22 22:37:12

标签: asp.net-mvc

嗨说我的观点包含:

<table>
    <tr>
        <th>
            Invoice Number
        </th>
        <th>
            Invoice Date
        </th>
        <th>
            Organisation
        </th>
        <th>
            Region
        </th>
        <th>
            Total Excluding GST
        </th>
        <th>
            Total Including GST
        </th>
        <th>
        </th>
    </tr>
    @foreach (var item in Model) {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.InvoiceNumber)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.InvoiceDate, "{0:D}")
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Organisation.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Area.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.TotalExcludingGst)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.TotalIncludingGst)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id })
            </td>
        </tr>
    }
</table>

并且每个项目都有一个布尔属性Editable。有没有办法根据此属性的值使编辑链接可见/不可见?

3 个答案:

答案 0 :(得分:3)

您可以使用if

@if (item.Editable) {
    @Html.ActionLink(...)
}

答案 1 :(得分:1)

基本上你可以使用css。但如果你坚持使用actionlink

Html.ActionLink(
"LinkName", 
"Action", 
null,
new { @style = "display:none" });

因此,如果您在视图中使用@if语句,则可以实现您想要的效果。

答案 2 :(得分:0)

使用CSS

   <a href="#" style="display:none">I am invisible</a>