如何在编辑Razor视图中删除无效的语法错误消息

时间:2013-06-12 17:00:44

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

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

@inherits ViewBase<EntityBase>

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

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

syntaxerror

如何解决这个问题?

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

如何修复此错误并使用简单函数I(“somestring”)重新编码javascript字符串?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

而不是写

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

你可以写

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

不幸的是,这只适用于需要字符串的情况。我还没有找到一种方法来规避其他数据类型(如int或bool)的误报,而不是强制转换它们:

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

或者在布尔值的情况下,检查&#34; true&#34;:

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