【发布时间】:2015-07-23 10:42:11
【问题描述】:
我有一堆要在JS中使用的常量保存在一个RESX文件中,比如:
DATE_PICKER_FORMAT yyyy-mm-dd
DATETIME_FORMAT yyyy-mm-dd hh:mm:ss
MONTH_PICKER_FORMAT yyyy-mm
我编写了一个简单的类来帮助将其写入 Razor 视图上的 JS:
public static class JavascriptResourceRenderer
{
private static string Render(ResourceSet resources)
{
string resourceString = "";
foreach (DictionaryEntry resource in resources)
{
resourceString += String.Format("var {0} = '{1}'; ", resource.Key, resource.Value);
}
return resourceString;
}
public static string RenderPageConstants()
{
ResourceSet resources = PageConstants.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true);
return Render(resources);
}
}
在我看来,我正在这样做:
@section Scripts
{
<script>
@JavascriptResourceRenderer.RenderPageConstants()
</script>
}
当视图加载时,常量会被渲染,除了引号被编码。
使用 DOM 检查器查看 HTML,这是我看到的:
<script>
var MONTH_PICKER_FORMAT = 'yyyy-mm';
</script>
我试过了
"var {0} = '{1}'; " // writes 'yyyy-mm' to view
"var {0} = \"{1}\"; " // writes "yyyy-mm" to view
@"var {0} = "{1}"; " // syntax error in String.Format
我该怎么写
<script>
var MONTH_PICKER_FORMAT = "yyyy-mm"; // or 'yyyy-mm' (I want the quotes!)
</script>
看风景?
【问题讨论】:
标签: c# razor asp.net-mvc-5