任何人都可以向我解释以下语法是什么意思吗?
ViewData [“greeting”] =(小时< 12?“Godd morning”:“下午好”);
答案 0 :(得分:3)
小时< 12? “Godd morning”:“下午好”
如果hour
的值小于12,那么ternary operator调用(等于if then else结构)将提供字符串Godd morning。
将结果放入ViewData [“greeting”]中,以后可以在视图中使用它来显示消息。
答案 1 :(得分:1)
你的意思是右边的操作员?它是Conditional Operator
,就像:
condition ? if_true : if_false
因此,如果hour
小于12,那么ViewData ["greeting"]
将会生成字符串Godd morning
。否则将分配Good afternoon
。
您可以阅读有关此运算符here的更多信息。
希望这会有所帮助:)
答案 2 :(得分:1)
此行将数据从控制器传递到视图模板。视图模板可以使用ViewData [“greeting”]的内容进行处理。例如:
<p>
<%: ViewData["greeting"] %>, earthling!
</p>
如果变量小时的值小于12,那么消息将是“Godd morning,earthling”,否则它将是“下午好,地球!”。
基本上将评估布尔表达式hour < 12
。如果是true
,则?
和:
之间的表达式将分配给ViewData["greeting"]
。如果为false,则:
之后的表达式将分配给左侧。
您可以替换
ViewData ["greeting"] = (hour <12 ? "Godd morning" : "Good afternoon");
使用此等效代码:
if( hour < 12 )
ViewData["greeting"] = "Godd morning";
else
ViewData["greeting"] = "Good afternoon";
答案 3 :(得分:1)
与以下内容相同:
if (hour < 12)
ViewData ["greeting"] = "Good morning";
else
ViewData ["greeting"] = "Good afternoon";
只是简化这种共同结构的三元运算符。
正如ŁukaszW.pl所说,只是:
yourCondition ? isTrue : isFalse;
ViewData只是控制器传递给视图的字典。
该视图应该显示数据,然后,您在控制器上创建“问候”字符串并将其传递给视图以显示该信息。