Ce qui suit est la première section de la première ligne d'un tableau sur l'une de mes pages ASP Index MVC3. J'ai parcouru le code lorsque cette page se charge, et je peux voir que l'évaluation de les conditions sont correctement remplies, mais pas pour les affichages "CE" ou "PT". Je suis assez nouveau pour ASP MVC, quelqu'un peut-il m'aider avec la syntaxe/expliquer ce qui se passe?
@foreach (var item in Model.Where(i => i.Status != "C")) {
var Id = item.Id;
<tr>
<td>
@if (!String.IsNullOrWhiteSpace(item.TableName))
{
if (item.TableName.Equals("AgentContEd"))
{
@Html.DisplayText("CE");
}
else if (item.TableName.Equals("AgentProductTraining"))
{
@Html.DisplayText("PT");
}
else
{
@Html.DisplayFor(modelItem => item.TableName)
}
}
</td>
utilisation @:
ou <text></text>
pour spécifier du texte html dans un code côté serveur si vous n'avez pas d'autre html dedans.
if (item.TableName.Equals("AgentContEd"))
{
@:CE
}
else if (item.TableName.Equals("AgentProductTraining"))
{
<text>PT</text>
}
Il existe 5 façons différentes d'afficher du texte. Pour afficher une chaîne, vous devez utiliser
@Html.DisplayName(string)
Le DisplayText est synonyme de Model.PropertyName .. donc Model.PropertyName = @ Html.DisplayText ('PropertyName')
Donc, si CE n'est pas un attribut de votre modèle et que vous essayez simplement de produire du texte brut plutôt que de remplacer cette déclaration par le texte brut:
if (item.TableName.Equals("AgentContEd"))
{
<text>CE</text>
}
Vous devez faire comprendre à Razor que vous essayez d'afficher du texte littéral. Voir ce bien
Guide de syntaxe Razor pour plus d'informations.
if (item.TableName.Equals("AgentContEd")) { <text>CE</text> }