2017-07-05 3 views
0

J'essaie de rendre un menu déroulant avec 6 options dans une cellule Grid.MVC. Ce example est très simple: vous définissez un assistant qui génère le balisage correspondant.Bootstrap Menu déroulant à l'intérieur de la cellule Grid.MVC

Ceci est mon code:

@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); 
}); 

Le code HTML résultant dans la cellule de table a la plupart des étiquettes dépouillé.

<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> 

La même aide, appelé en dehors de la grille, retourne le balisage correct. Des idées? Merci d'avance.

Répondre

1

On dirait que vous avez aussi besoin d'appeler « Sanitized »:

.Encoded(false).Sanitized(false) 

Sanitizer est responsable pour le décapage des balises HTML potentiellement dangereux de la chaîne, il pourrait être celui de les enlever dans votre cas.