-3

有什么解决方案吗?

这是行不通的

$("#spanfile").html(@Html.ResourceScriptString("error","please.choose.file"));

在哪里

public static string ResourceScriptString(this HtmlHelper html, string type, string key)
{
  return HttpUtility.JavaScriptStringEncode(ResourceDBManager.CachedObject.getValue(type, key), true);
}

我确实想写得很好,因为这是有效的,但在 VS 中有 javascript 解析错误

$("#spanfile").html("@Html.ResourceScriptString("error","please.choose.file")");

在哪里

public static string ResourceScriptString(this HtmlHelper html, string type, string key)
{
  return HttpUtility.JavaScriptStringEncode(ResourceDBManager.CachedObject.getValue(type, key), false);
}
4

1 回答 1

1

这不起作用:

$("#spanfile").html(@Html.ResourceScriptString("error","please.choose.file"));

因为结果会是这样的:

$("#spanfile").html(some value);

这将导致 JavaScript 错误。发出字符串的服务器端代码将它作为它的值发出,而不是在它周围加上任何引号。您需要提供报价。你在这里做什么:

$("#spanfile").html("@Html.ResourceScriptString("error","please.choose.file")");

尽管这可能会使 Visual Studio 感到困惑。幸运的是,JavaScript 允许您使用单引号指定一个字符串,如果这样更好的话:

$("#spanfile").html('@Html.ResourceScriptString("error","please.choose.file")');

这可能仍然会混淆 Visual Studio 中的智能感知(至少在 2012 年会更好,但我知道将 Razor 和 JavaScript 混合会混淆 2010 年),但应该可以正常工作。

于 2013-10-04T13:35:45.327 回答