J'ai essayé toutes les solutions proposées à d'autres questions similaires, mais aucune d'entre elles ne semble fonctionner… .. Essentiellement, j'essaie d'afficher un tableau rempli de données provenant d'une collection de modèles. Ce n'est pas un problème en soi, mais je voudrais forcer rasoir à le générer toujours en 3 colonnes (peu importe le nombre d'éléments que nous avons). Mon idée originale était de le faire de cette façon:
<table class="projects-grid">
<tr>
@for(int i = 0; i< Model.Count(); i++)
{
if (i != 0 && i % 3 == 0)
{
Html.Raw("</tr><tr>");
}
var item = Model.ElementAt(i);
<td class="project-tile">
@Html.DisplayFor(modelItem => item.Title)
</td>
}
</tr>
</table>
Ainsi, chaque troisième élément voudrait que la chaîne "" soit générée par une chaîne afin d’ajouter une autre ligne à la table. Tout semble bien fonctionner sauf que cette piqûre n'est pas présente dans le code source de la page. En debug je peux voir que cette ligne
Html.Raw("</tr><tr>");
Est effectivement appelé, mais aucune sortie dans la page générée n'est présente.
Toute aide? Merci beaucoup d'avance ....
La raison pour laquelle il ne sort pas est dû au contexte de la syntaxe de rasoir en cours d'exécution. Dans votre bloc if
, tout le code s'exécute comme si vous vous trouviez dans un contexte C # normal et que la ligne:
Html.Raw("</tr><tr>");
Retourne une MvcHtmlString
mais vous ne faites rien avec elle. Vous devez entrer un contexte de sortie:
@Html.Raw("</tr><tr>");
Je voudrais utiliser un travail autour.
Essayer:
<table class="projects-grid">
<tr>
@for(int i = 0; i< Model.Count(); i++)
{
if (i != 0 && i % 3 == 0)
{
<text>
@Html.Raw("</tr><tr>")
</text>
}
var item = Model.ElementAt(i);
<td class="project-tile">
@Html.DisplayFor(modelItem => item.Title)
</td>
}
</tr>
</table>
J'espère que ça aide.
Enfermer Html.Raw avec @ (et) a résolu le problème pour moi. Même s'il y avait un @ {et} extérieur, il avait toujours besoin de @ (et) autour de chaque instruction Html.Raw.
Html.Raw effectivement utilisé pour les sauts de ligne, comme ce que vous faites dans c # avec/n
Par exemple:
<text>
@html.raw("</tr><tr>")
</text>
J'espère que ça aide.
Html.Raw
Encapsule le balisage HTML dans une instance HtmlString de sorte qu'il soit interprété comme un balisage HTML .
Manette
public actionresult Htmlraw()
{
viewbag.message = "Hey friends lets go" + "<br />" + "for chillout";
return view();
}
sortie
@html.raw(viewbag.message);