字符串中的htmlhelper c#

时间:2013-10-04 13:31:39

标签: c# javascript asp.net-mvc-4

有没有解决方案?

这不起作用

$("#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);
}

1 个答案:

答案 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会让人感到困惑),但是应该在实际工作中使用。