Grid.MVC单元格

时间:2017-07-05 10:31:03

标签: asp.net-mvc twitter-bootstrap helpers grid.mvc

我正在尝试在Grid.MVC单元格中呈现一个包含6个选项的下拉菜单。 这个example非常简单:你定义了一个生成相关标记的帮助器。

这是我的代码:

@helper menuContestuale(int idEvento) { 
<div class="dropdown">
    <a class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">&raquo;</a>
    <ul class="dropdown-menu">
        <li>
            @Html.ActionLink("Dettaglio", "DettaglioErrore/" + idEvento, "Home")
        </li>
       <li>
           @Html.ActionLink("Elimina anomalia", "EliminaErrore/" + idEvento, "Home")
       </li>
       <li>
           @Html.ActionLink("Elimina anomalie simili di questa persona", "EliminaSimiliPersona/" + idEvento, "Home")
       </li>
       <li>
           @Html.ActionLink("Elimina anomalie stesso processo di questa persona", "EliminaSimiliPersonaProcesso/" + idEvento, "Home")
       </li>
       <li>
           @Html.ActionLink("Elimina anomalie simili", "EliminaSimili/" + idEvento, "Home")
       </li>
       <li>
           @Html.ActionLink("Elimina intero processo", "EliminaProcesso/" + idEvento, "Home")
       </li>
    </ul>
</div>
}

@Html.Grid(Model).Columns(columns =>
{
    columns.Add(row => row.idEvento).RenderValueAs(row => menuContestuale(row.idEvento).ToHtmlString()).Encoded(false);
});

表格单元格中生成的HTML会删除大部分标记。

<td class="grid-cell" data-name="idEvento">    
    &raquo;</a>
        <li>
            Dettaglio</a>
        </li>
       <li>
           Elimina anomalia</a>
       </li>
       <li>
           Elimina anomalie simili di questa persona</a>
       </li>
       <li>
           Elimina anomalie stesso processo di questa persona</a>
       </li>
       <li>
           Elimina anomalie simili</a>
       </li>
       <li>
           Elimina intero processo</a>
       </li>
    </ul>
</td>

在Grid外部调用的同一帮助程序返回正确的标记。 有任何想法吗 ? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

看起来您还需要拨打#34; Sanitized&#34;:

.Encoded(false).Sanitized(false)

Sanitizer负责从字符串中删除具有潜在危险的HTML标记,因此可能就是在您的情况下将其删除。