我有一个for循环,我想根据if语句评估打印一些页面内容。似乎没有评估if语句中的表达式,因为没有分支打印出内容。
//evaluates to True
<%: (ViewData["project_id_PO"] as List<int>).Contains(4) %>
//doesn't evaluate
<% if((ViewData["project_id_PO"] as List<int>).Contains(4) == true){
Html.Raw("<p>Test1</p>");
}
else
{
Html.Raw("<p>Test2</p>");
} %>
} %>
这里可能有什么问题?
答案 0 :(得分:1)
似乎没有评估if语句中的表达式,因为没有分支打印出内容。
这是一个不正确的假设。
<% %>
代码块优先于代码但不明确地向输出流写入任何内容。
我相信你想要实现的是以下
<%= (ViewData["project_id_PO"] as List<int>).Contains(4)
? Html.Raw("<p>test1</p>")
: Html.Raw("<p>test1</p>") %>
使用<%=
将输出呈现给流。
但是,您最好为此目的创建一个ViewModel,而不是在View中进行计算。