Вам следует открыть консоль разработчика веб-браузера и увидеть реальный скрипт, который достигает браузера.
Детали Razor @Session["mission"].ToString()
не существуют в скрипте браузера, поскольку они оцениваются на сервере перед отправкой их в браузер. Так что нет смысла пробовать @Session["mission"].ToString() != "1"
в консоли. В браузере вы получите что-то вроде:
if (1 != "1")
или даже как
if ( != "1")
что вызвало бы ошибку.
JavaScript выполняет объединение, поэтому 1
равно "1"
, когда вы используете компараторы ==
или !=
, поэтому вам не нужно включать кавычки вокруг значения (если только вы не получите упомянутую ошибку выше: в этом случае, если вы включите кавычки, вы получите if ("" != "1")
).
Слияния можно избежать, используя !==
или ===
, который будет считать 1
не равным "1"
, поэтому включение кавычек в этом случае не имеет значения.