Bootstrap Grid.MVC 单元格内的下拉菜单
Bootstrap Dropdown menu inside Grid.MVC cell
我正在尝试在 Grid.MVC 单元格中呈现一个包含 6 个选项的下拉菜单。
example 非常简单:您定义一个生成相关标记的助手。
这是我的代码:
@helper menuContestuale(int idEvento) {
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">»</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);
});
table 单元格中的结果 HTML 删除了大部分标签。
<td class="grid-cell" data-name="idEvento">
»</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 外部调用,returns 正确标记。
有任何想法吗 ?
提前致谢。
看来您还需要致电 "Sanitized":
.Encoded(false).Sanitized(false)
Sanitizer 负责从字符串中去除潜在危险的 HTML 标签,因此在您的情况下它可能是去除它们的那个。
我正在尝试在 Grid.MVC 单元格中呈现一个包含 6 个选项的下拉菜单。 example 非常简单:您定义一个生成相关标记的助手。
这是我的代码:
@helper menuContestuale(int idEvento) {
<div class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">»</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);
});
table 单元格中的结果 HTML 删除了大部分标签。
<td class="grid-cell" data-name="idEvento">
»</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 外部调用,returns 正确标记。 有任何想法吗 ? 提前致谢。
看来您还需要致电 "Sanitized":
.Encoded(false).Sanitized(false)
Sanitizer 负责从字符串中去除潜在危险的 HTML 标签,因此在您的情况下它可能是去除它们的那个。