установить значение переменной javascript mvc c # [duplicate]

Хорошее объяснение того, что происходит при таком вычислении, содержится в документе n1188 из сайта ISO W14 .

Я объясняю идеи.

Основным правилом стандарта ISO 9899, ​​который применяется в этой ситуации, является 6.5p2.

Между предыдущей и следующей точкой последовательности объект должен иметь свое сохраненное значение не более чем один раз, оценивая выражение. Кроме того, предыдущее значение должно быть считано только для определения значения, которое нужно сохранить.

Точки последовательности в выражении типа i=i++ находятся перед i= и после i++.

В документе, который я привел выше, объясняется, что вы можете определить, что программа сформирована маленькими ящиками, каждая из которых содержит инструкции между двумя последовательными точками последовательности. Точки последовательности определены в приложении C стандарта, в случае i=i++ есть две точки последовательности, которые ограничивают полное выражение. Такое выражение синтаксически эквивалентно записи expression-statement в форме грамматики Бэксу-Наура (грамматика приведена в приложении A стандарта).

Таким образом, порядок инструкций внутри ящика не имеет четкого порядка.

i=i++

можно интерпретировать как

tmp = i
i=i+1
i = tmp

или как

tmp = i
i = tmp
i=i+1

, поскольку обе эти формы интерпретируют код i=i++ являются действительными и потому, что оба генерируют разные ответы, поведение не определено.

Таким образом, точка последовательности может быть видна в начале и в конце каждого окна, которое составляет программу [поля представляют собой атомные единицы в C] и внутри ящика порядок команд не определен во всех случаях. Изменение этого порядка иногда может изменить результат.

EDIT:

Другим хорошим источником для объяснения таких неоднозначностей являются записи с сайта c-faq (также опубликованный как книга ), а именно здесь и здесь и здесь .

474
задан BoltClock 20 May 2013 в 19:50
поделиться

14 ответов

@@ должен это сделать.

748
ответ дан Tim Cooper 26 August 2018 в 12:18
поделиться

Вы можете использовать @@ для этой цели. Подобно var email = firstName + '\@@' + domain;

1
ответ дан Abdus Salam Azad 26 August 2018 в 12:18
поделиться

эта работа для меня

<meta name="author" content="Alan van Buuren @("@Alan_van_Buuren")">

Или вы можете использовать: @@ Alan_van_Buuren

: S

2
ответ дан Alan 26 August 2018 в 12:18
поделиться

@@ является escape-символом для @ в представлениях Razor, как указано выше.

Однако Razor пытается разобраться, когда «@» является просто «@» и где он отмечает C # (или VB.Net). Одним из основных применений для этого является идентификация адресов электронной почты в представлении Razor - не обязательно избегать символа @ в адресе электронной почты.

12
ответ дан Alfamale 26 August 2018 в 12:18
поделиться

Вместо объекта HTML я предпочитаю использовать @ Html.Raw ("@")

17
ответ дан CLRBTH 26 August 2018 в 12:18
поделиться

Для вопроса о @RazorCodePart1 @@ @RazorCodePart2 вам нужна последовательность:

@RazorCodePart1 @:@@ @RazorCodePart2

Я знаю, это выглядит немного странно, но оно работает и даст вам буквальный символ '@' между кодовые блоки.

8
ответ дан DragonDTG 26 August 2018 в 12:18
поделиться

Razor @ escape char для символов ...

<img src="..." alt="Find me on twitter as @("@username")" />

или

<img src="..." alt="Find me on twitter as @("@")username" />
116
ответ дан Emre Karahan 26 August 2018 в 12:18
поделиться

использовать <text></text> или более простой способ @:

35
ответ дан Kasper Skov 26 August 2018 в 12:18
поделиться

Фактически @ следует использовать с синтаксисом синтаксиса Razor или с переменной / моделью для привязки значения.

Например: если для теста назначено значение, то есть @ {var test = "ABC"} то вы можете получить значение по настройкам, так как @test где-нибудь есть страница cshtml в html-части. в противном случае простое использование как @ Html.DisplayName ("test")

0
ответ дан Pavithra 26 August 2018 в 12:18
поделиться

@Html.Raw("@") кажется мне еще более надежным, чем @@, так как не во всех случаях @@ будет сбежать.

Поэтому:

<meta name="twitter:site" content="@twitterSite">

be:

<meta name="twitter:site" content="@Html.Raw("@")twitterSite">
26
ответ дан Rosue Don-Chip Walford 26 August 2018 в 12:18
поделиться

Я попробовал все варианты выше, и никто не работал. Это то, что я сделал, что сработало:

@{
    string str = @"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$";
}

<td>Email</td>
<td>
   <input type="text" id="txtEmail" required name="email" pattern=@str /> 
</td>

Я создал переменную строки и передал в нее весь код шаблона RegEx, затем использовал переменную в html, а Razor был крут с ней.

1
ответ дан Sender 26 August 2018 в 12:18
поделиться

просто добавьте переменную в файл CSHTML var myVariable = @"@";

и добавьте ее в свой макет <span class="my-class"><a href="@myVariale" target="_blank" >link text</a></span>

0
ответ дан Speedyjet 26 August 2018 в 12:18
поделиться

Я не мог заставить любой из них работать внутри моего атрибута placeholder, поэтому я использовал специальный символ xml.

<input type="text" placeholder="fex: firstname&#64;lastname.com"/>

См. больше примеров здесь. https://www.dvteclipse.com/documentation/svlinter/How_to_use_special_characters_in_XML.3F.html

0
ответ дан Terje Solem 26 August 2018 в 12:18
поделиться

У меня была такая же проблема. Я объявил переменную, поместив мой текст с помощью @.

@{
   var twitterSite = "@MyTwitterSite";
}

...

<meta name="twitter:site" content="@twitterSite">
5
ответ дан watfy 26 August 2018 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: