Visual Studio Razor页面错误语法错误

时间:2014-08-15 22:17:29

标签: c# javascript asp.net-mvc visual-studio-2012 razor

每当我使用带有Razor页面的@符号时,例如:

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

然后我在转换为HTML后的所有位置都会收到语法错误通知:

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

这只是一个简单的例子,但它也出现在其他地方。如果有必要,我会引用其他例子。我无法在其他stackoverflow问题中找到答案,但有了这样一个基本问题,我假设有一个问题。鼓励链接到这个问题。

编辑:已实现我应该在Razor Page中显示示例是JS。

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

2 个答案:

答案 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>}
}