每当我使用带有Razor页面的@符号时,例如:
<script type="text/javascript">
if( @(ProjectName.NameSpace.booleanVariable) ) {
doStuff();
}
</script>
然后我在转换为HTML后的所有位置都会收到语法错误通知:
<script type="text/javascript">
if(True) {
doStuff();
}
</script>
这只是一个简单的例子,但它也出现在其他地方。如果有必要,我会引用其他例子。我无法在其他stackoverflow问题中找到答案,但有了这样一个基本问题,我假设有一个问题。鼓励链接到这个问题。
编辑:已实现我应该在Razor Page中显示示例是JS。
问题是:如何防止这些语法错误通知,以便我可以轻松识别和管理真正的语法错误。
答案 0 :(得分:1)
感谢Daniel Sanchez。
我成功地压制了这样的通知:
'@ProjectName.NameSpace.booleanVariable'
然而,Steve说这不是最好的编码实践,价值应该用HTML存储并通过js访问。
<input type="hidden" id="booleanVariable" value="@ProjectName.NameSpace.booleanVariable" />
谢谢!
答案 1 :(得分:0)
我认为“True”不是有效的javascript。
<script type="text/javascript">
if( Boolean(@Html.Raw(Json.Encode(ProjectName.NameSpace.booleanVariable))) ) {
doStuff();
}
</script>
Boolean()是javascript代码,用于避免Razor Warning消息。
Json.Encode将booleanVariable转换为“true”或“false”,
你可以用(ProjectName.NameSpace.booleanVariable?“true”:“false”替换它)
我认为你真正想要的是
@if(ProjectName.NameSpace.booleanVariable) {
{<script type="text/javascript">
doStuff();
</script>}
}