@Html.DisplayText не отображает текст - программирование
Подтвердить что ты не робот

@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>
4b9b3361

Ответ 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> }