繁体   English   中英

Visual Studio Razor页面错误语法错误

[英]Visual Studio Razor Page False Syntax Errors

每当我在剃刀页面上使用@符号时,例如:

<script type="text/javascript">
if( @(ProjectName.NameSpace.booleanVariable) ) {
    doStuff();
}
</script>

然后我到处都收到语法错误通知,在转换为HTML之后一切正常:

<script type="text/javascript">
if(True) {
    doStuff();
}
</script>

这只是一个简单的示例,但它也发生在其他地方。 如果有必要,我会列举其他例子。 我在其他stackoverflow问题中找不到答案,但是有了这样一个基本的问题,我认为这个问题已经存在。 鼓励链接到所述问题。

编辑:意识到我应该显示示例是Razor Page中的JS。

问题是:如何防止这些语法错误通知,以便可以轻松识别和管理实际的语法错误。

感谢Daniel Sanchez。

我成功抑制了这样的通知:

'@ProjectName.NameSpace.booleanVariable'

不过,史蒂夫(Steve)说,这不是最佳的编码实践,该值应与HTML存储在一起并通过js访问。

<input type="hidden" id="booleanVariable" value="@ProjectName.NameSpace.booleanVariable" />

谢谢!

我认为“ True”不是有效的JavaScript。

<script type="text/javascript">
if( Boolean(@Html.Raw(Json.Encode(ProjectName.NameSpace.booleanVariable))) ) {
    doStuff();
}
</script>

Boolean()是JavaScript代码,以避免出现Razor警告消息。

Json.Encode将booleanVariable转换为“ true”或“ false”,

您可以将其替换为(ProjectName.NameSpace.booleanVariable?“ true”:“ false”)

我想你真正想要的是

@if(ProjectName.NameSpace.booleanVariable) {
{<script type="text/javascript">
    doStuff();
</script>}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM