@ Html.DisplayText实际上不会显示文本(@Html.DisplayText will

2019-07-18 09:21发布

下面是一个表的第一行中对我的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>

Answer 1:

使用@:<text></text>指定服务器端代码中的HTML文本,如果你没有任何其他的HTML在那里。

if (item.TableName.Equals("AgentContEd"))
{
    @:CE
}
else if (item.TableName.Equals("AgentProductTraining"))
{
    <text>PT</text>
}


Answer 2:

有喜欢的5种不同的显示文本的方式。 为了显示你需要使用一个字符串

@Html.DisplayName(string)


Answer 3:

所述DisplayText就是同义为Model.PropertyName ..所以Model.PropertyName = @ Html.DisplayText( '的PropertyName')

所以,如果CE是不是你的模型的属性,你只是想输出原始文本不仅仅是替换原始文本的发言:

        if (item.TableName.Equals("AgentContEd"))
        {
            <text>CE</text>
        }


Answer 4:

你必须让剃刀意识到你正在试图显示文字文本。 看到这个好
剃刀语法指南以获取更多信息。

if (item.TableName.Equals("AgentContEd")) { <text>CE</text> }



文章来源: @Html.DisplayText will not actually display text