以下是我的一个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>
答案 0 :(得分:30)
如果您没有任何其他html,请使用@:
或<text></text>
在服务器端代码中指定html文本。
if (item.TableName.Equals("AgentContEd"))
{
@:CE
}
else if (item.TableName.Equals("AgentProductTraining"))
{
<text>PT</text>
}
答案 1 :(得分:14)
有5种不同的显示文字的方式。 要显示您需要使用的字符串
@Html.DisplayName(string)
答案 2 :(得分:10)
DisplayText是Model.PropertyName的同义词..所以Model.PropertyName = @ Html.DisplayText('PropertyName')
因此,如果CE不是您模型的属性,并且您只是尝试输出原始文本而不是仅使用原始文本替换该语句:
if (item.TableName.Equals("AgentContEd"))
{
<text>CE</text>
}
答案 3 :(得分:2)
你必须让Razor意识到你正试图显示文字文本。看到这个好 Razor syntax guide了解更多信息。
if (item.TableName.Equals("AgentContEd"))
{
<text>CE</text>
}