2

在 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 中不可用'

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

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

4

2 回答 2

1

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

于 2013-06-12T17:04:26.827 回答
0

而不是写

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

你可以写

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

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

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

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

var myBool = "@myBool".toLowerCase() === "true";
于 2014-01-22T14:00:45.570 回答