Я только что начал с Razor (v3), и все в порядке, но я не понимаю правил, когда вам нужно использовать знак @.Каковы правила вставки синтаксиса @ в синтаксисе Razor?
Вот пример из моего текущего проекта.
В этом коде:
@if (ViewBag.ForcePublic == null && User.Identity.GetUserId() == @Model.Seller.Id)
{
<h2>Listing Status</h2>
switch (Model.Status)
{
Если я ставлю @ перед утверждением переключателя, я получаю сообщение об ошибке выполнения сказать, что мне не нужно, чтобы гнездо @ знаков.
Однако в этом коде:
@if(!Model.BizAddress.StreetAddress.IsEmpty()) {
@Html.DisplayFor(model => model.BizAddress.StreetAddress);
}
Я не только не получить ошибку синтаксиса (как и следовало ожидать, учитывая пример выше), если я не включать знак @ в перед Html.DisplayFor, мой адрес StreetAddress не печатается. Вместо этого он бессильно терпит неудачу!
Я хотел бы понять, почему это происходит, чтобы я мог избежать тонких ошибок, которые могут возникнуть в будущем.
Я подозреваю, что основная причина имеет отношение к тому факту, что шаблон (я думаю) аналогичен шагу препроцессора, а область кода C# известна только во время выполнения, поэтому эти два примера являются структурными то же самое происходит после обоих этапов (предварительный процесс, компиляция и запуск).