Может ли кто-нибудь объяснить мне, что означает следующий синтаксис?Синтаксис ViewData в ASP.NET MVC
ViewData ["приветствие"] = (час < 12? "Godd morning": "Добрый день");
Может ли кто-нибудь объяснить мне, что означает следующий синтаксис?Синтаксис ViewData в ASP.NET MVC
ViewData ["приветствие"] = (час < 12? "Godd morning": "Добрый день");
< час 12? «Godd утро»: «Добрый день»
Это ternary operator вызов (эквивалент, если потом еще структура) будет предоставлять строку Godd утром, если значение hour
меньше, чем 12, и в противном случае Добрый день.
Этот результат помещается в ViewData ["greeting"], который впоследствии может использоваться в вашем представлении для отображения сообщения.
Вы имеете в виду оператора справа? Это Conditional Operator
и это как:
condition ? if_true : if_false
Так что в здесь, если hour
меньше 12, то ViewData ["greeting"]
будет иметь строку Godd morning
assinged. В противном случае будет назначено Good afternoon
.
Вы можете узнать больше об этом операторе here.
Надеется, что это помогает :)
Эта строка передает данные с контроллера на шаблон представления. Шаблон просмотра может использовать содержимое 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";
это то же самое, как:
if (hour < 12)
ViewData ["greeting"] = "Good morning";
else
ViewData ["greeting"] = "Good afternoon";
Есть только тройная оператор, чтобы упростить эту общую структуру.
Как сказал ŁukaszW.pl, просто:
yourCondition ? isTrue : isFalse;
ViewData просто словарь, который контроллер пропуском в представлении.
Предполагается, что в представлении должны отображаться данные, тогда вы получаете надпись «приветствие» на контроллере и передаете его в представление для отображения этой информации.
Я думаю, что он спросил о синтаксисе. Не о механизме ViewData;) –
@ Lukas: Спасибо. Я думаю, что это может быть и то, и другое, поэтому я обновил свой ответ. – Manfred