有没有解决方案?
这不起作用
$("#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);
}
答案 0 :(得分: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会让人感到困惑),但是应该在实际工作中使用。