【问题标题】:How to remove invalid syntax error message in editing Razor view如何在编辑 Razor 视图时删除无效语法错误消息
【发布时间】:2013-06-08 21:37:16
【问题描述】:

在 Razor 中(在站点母版页和视图中)使用具有动态内容的 javascript 字符串,例如

@inherits ViewBase<EntityBase>

<script type="text/javascript">
  $(function () {
    $("#xx").attr('title', @Html.Raw(Json.Encode("<>.")));

Microsoft Visual Studio Express for Web 2012 将尾随括号标记为错误:

如何解决这个问题?

构造 ´@Html.Raw(Json.Encode(Res.I("somestring")))´ 用于动态翻译 javascript 文本。 I() 返回用户语言的文本。 如何创建一些帮助程序以便代码是 simllifid ?我创建了视图公共基类并在其中添加了函数,以便视图仅包含 I("somestring") 但这在“布局 =”~/Views/Shared/Site.cshtml“中指定的 Razor 主布局文件 Site.cshtml 中不可用'

如何修复这个错误并使用简单的函数 I("somestring") 来返回编码的 javascript 字符串?

使用ASP.NET MVC3、C#、jquery、jquery ui。

【问题讨论】:

  • 请一次问一个问题。
  • 这两个问题都是相关的。我预计可能会创建函数 I("stringtotranslate") 并使用它而不是它来删除读取警报。

标签: asp.net-mvc asp.net-mvc-3 visual-studio razor razor-declarative-helpers


【解决方案1】:

Visual Studio 的 Javascript 语言服务无法识别 Javascript 代码块中的 Razor 标记。
这些错误是误报,不会在运行时发生。

【讨论】:

  • 页面包含大量 javascript 代码,使用此方法动态注入用户语言中的字符串。所以每个注入的消息文本都会抛出这个错误,整个页面看起来都是红色的。如何解决这些误报?
  • @Andrus 如果您仍然需要摆脱那些误报,我已经发布了一个解决这个问题的答案。即使您忽略它们,您的代码也可能运行良好,但摆脱无用的Warning: Syntax Error 可以让您更轻松地识别更紧迫的警告/错误。
【解决方案2】:

而不是写

@Html.Raw(Json.Encode("<>."))

你可以写

"@Html.Raw(Json.Encode("<>."))"

不幸的是,这仅在您需要字符串时才有效。我还没有找到一种方法来规避其他数据类型(如 int 或 bool)的误报,除了强制转换它们:

var myInt = Number("@myInt");
var myFloat = Number("@myFloat");

或者在布尔值的情况下,检查它们的值是否为“真”:

var myBool = "@myBool".toLowerCase() === "true";

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    相关资源
    最近更新 更多