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

以下是我的一个ASP MVC3索引页面上表格第一行的第一部分。 当页面加载时,我已逐步完成代码,并且可以看到条件的评估已正确完成,但不是“CE”或“PT”显示。 我是ASP MVC的新手,有人可以帮助我解释语法/解释发生了什么吗?

@foreach (var item in Model.Where(i => i.Status != "C")) { var Id = item.Id;   @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) } }  

如果您没有任何其他html,请使用@:在服务器端代码中指定html文本。

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

有5种不同的显示文字的方式。 为了显示您需要使用的字符串

 @Html.DisplayName(string) 

DisplayText是Model.PropertyName的同义词。所以Model.PropertyName = @ Html.DisplayText(’PropertyName’)

因此,如果CE不是模型的属性,并且您只是尝试输出原始文本而不是仅使用原始文本替换该语句:

  if (item.TableName.Equals("AgentContEd")) { CE } 

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

if (item.TableName.Equals("AgentContEd")) { CE }