@Html.DisplayText не отображает текст
Ниже приведен первый раздел в первой строке таблицы на одной из моих страниц ASP MVC3. Я прошел через код, когда эта страница загружается, и может видеть, что оценка условий выполняется правильно, однако не отображаются индикаторы "CE" или "PT". Я новичок в ASP MVC, может кто-нибудь помочь мне с синтаксисом/объяснить, что происходит?
@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>
Ответы
Ответ 1
используйте @:
или <text></text>
, чтобы указать html-текст внутри кода на стороне сервера, если у вас нет другого html.
if (item.TableName.Equals("AgentContEd"))
{
@:CE
}
else if (item.TableName.Equals("AgentProductTraining"))
{
<text>PT</text>
}
Ответ 2
Существует 5 различных способов отображения текста.
Чтобы отобразить строку, вам нужно использовать
@Html.DisplayName(string)
Ответ 3
DisplayText является синонимом для Model.PropertyName.. поэтому Model.PropertyName = @Html.DisplayText('PropertyName')
Итак, если CE не является атрибутом вашей модели, и вы просто пытаетесь выводить необработанный текст, чем просто заменять этот оператор необработанным текстом:
if (item.TableName.Equals("AgentContEd"))
{
<text>CE</text>
}
Ответ 4
Вам нужно заставить Razor понять, что вы пытаетесь отобразить буквальный текст. См. Это хорошее
Руководство по синтаксису Razor для получения дополнительной информации.
if (item.TableName.Equals("AgentContEd"))
{
<text>CE</text>
}