2010-08-08 3 views

ответ

3

< час 12? «Godd утро»: «Добрый день»

Это ternary operator вызов (эквивалент, если потом еще структура) будет предоставлять строку Godd утром, если значение hour меньше, чем 12, и в противном случае Добрый день.

Этот результат помещается в ViewData ["greeting"], который впоследствии может использоваться в вашем представлении для отображения сообщения.

1

Вы имеете в виду оператора справа? Это Conditional Operator и это как:

condition ? if_true : if_false 

Так что в здесь, если hour меньше 12, то ViewData ["greeting"] будет иметь строку Godd morning assinged. В противном случае будет назначено Good afternoon.

Вы можете узнать больше об этом операторе here.

Надеется, что это помогает :)

1

Эта строка передает данные с контроллера на шаблон представления. Шаблон просмотра может использовать содержимое ViewData ["приветствие"] для его обработки. Например:

<p> 
    <%: ViewData["greeting"] %>, earthling! 
</p> 

Если значение переменной час меньше, чем 12 сообщение будет «Godd утро, землянин», в противном случае это будет «Добрый день, землянин!».

В основном булево выражение hour < 12 будет оценено. Если это true, то выражение между ? и : будет присвоено ViewData["greeting"]. Если оно ложно, то выражение после : будет назначено левой стороне.

Вы можете заменить

ViewData ["greeting"] = (hour <12 ? "Godd morning" : "Good afternoon"); 

с этим эквивалентный код:

if(hour < 12) 
    ViewData["greeting"] = "Godd morning"; 
else 
    ViewData["greeting"] = "Good afternoon"; 
+0

Я думаю, что он спросил о синтаксисе. Не о механизме ViewData;) –

+0

@ Lukas: Спасибо. Я думаю, что это может быть и то, и другое, поэтому я обновил свой ответ. – Manfred

1

это то же самое, как:

if (hour < 12) 
    ViewData ["greeting"] = "Good morning"; 
else 
    ViewData ["greeting"] = "Good afternoon"; 

Есть только тройная оператор, чтобы упростить эту общую структуру.

Как сказал ŁukaszW.pl, просто:

yourCondition ? isTrue : isFalse; 

ViewData просто словарь, который контроллер пропуском в представлении.

Предполагается, что в представлении должны отображаться данные, тогда вы получаете надпись «приветствие» на контроллере и передаете его в представление для отображения этой информации.

Смежные вопросы