如何在razor中创建javascript字符串
How to create a javascript string in razor
我看到了一些关于这个主题的帖子和一些博客,但似乎没有提到我得到的结果。
我想要的是生成一个带有信息的谷歌地图。手动输入信息会得到正确的信息。所以这部分是有效的。
我遇到的问题是,当我要动态地创建带有字符串的javascript数组时,该字符串包含我想要在地图上显示的信息。
我想要得到的html代码是:
<script type="text/javascript">
var projects = [
['Kantoor 4.1 bestaande bouw', 52.25446, 6.16024700000003, 'Deventer', '', 'adviseurs', 'rating30'],
['School nieuw 4.0', 52.243161, 4.43677860000003, 'Noordwijk', '', 'adviseurs', 'rating30'],
];
非常简单的javascript数组,我想用创建它
<script type="text/javascript">
var projects = [
@foreach (var item in Model)
{
@HttpUtility.JavaScriptStringEncode("['" + item.Gebouwnaam + "', " + item.LocatieLatitude.ToString().Replace(",", ".") + ", " + item.LocatieLongitude.ToString().Replace(",", ".") + ", '" + item.Plaats + "', '" + item.Gebruiksfunctie + "', '" + item.Licentiehouder + "', '" + item.rating + "'],");
}
];
</script>
然而,这给了我:
<script type="text/javascript">
var projects = [
['u0027Kantoor 4.1 bestaande bouw'u0027, 52.25446, 6.16024700000003, 'u0027Deventer'u0027, 'u0027'u0027, 'u0027adviseurs'u0027, 'u0027rating30'u0027],
['u0027School nieuw 4.0'u0027, 52.243161, 4.43677860000003, 'u0027Noordwijk'u0027, 'u0027'u0027, 'u0027adviseurs'u0027, 'u0027rating30'u0027],
];
</script>
跳过单引号是行不通的。我做错了什么?
刚刚试用
<script type="text/javascript">
var projects = [
@Html.Raw("['" + "aaa" + "', '" + "bbb" + "'],")
];
</script>
它发挥了作用并显示。。。
<script type="text/javascript">
var projects = [
['aaa', 'bbb'],
];
</script>
您不想对整个字符串调用JavaScriptStringEncode,这也会对文字指示符进行编码(在您的示例中,这些指示符将被转换为''u0027)。相反,对数组中的每个项目调用它,如下所示:
<script type="text/javascript">
var projects = [
@foreach (var item in Model)
{
String.Format("['{0}',{1},{2},'{3}','{4}','{5}','{6}']",
HttpUtility.JavaScriptStringEncode(item.Gebouwnaam),
HttpUtility.JavaScriptStringEncode(item.LocatieLatitude.ToString().Replace(",", ".")),
HttpUtility.JavaScriptStringEncode(item.LocatieLongitude.ToString().Replace(",", ".")),
HttpUtility.JavaScriptStringEncode(item.Plaats),
HttpUtility.JavaScriptStringEncode(item.Gebruiksfunctie),
HttpUtility.JavaScriptStringEncode(item.Licentiehouder),
HttpUtility.JavaScriptStringEncode(item.rating)
)
}
];
</script>
我相信你可以在.net中完成大部分繁重的工作,并利用Html.Raw为你转换对象:
@{
var myObj = Model.Select(i => new {
item.Gebouwnaam,
item.LocatieLatitude.ToString().Replace(",", "."),
item.LocatieLongitude.ToString().Replace(",", "."),
item.Plaats,
item.Gebruiksfunctie,
item.Licentiehouder,
item.rating }).ToArray();
}
<script type="text/javascript">
var jsObj = @Html.Raw(Json.Encode(myObj));
</script>
既然在这个问题中已经提到了,HttpUtilityJavaScriptStringEncode()对于包含换行符的字符串来说真的很方便:
@{ var myNetString = "Hi,'r'nMy name is Joe'r'nAnd I work in a button factory"; }
<script type='text/javascript'>
var myJsString = '@HttpUtility.JavaScriptStringEncode(myNetString)';
</script>
相关文章:
- 使用Web Html表单创建Javascript数组
- 使用私有成员创建JavaScript类
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- Mediawiki皮肤创建-Javascript don'Don’t get load
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 为表菜单创建javascript
- 使用jstl c:forEach在迭代jsp bean上创建javascript json对象
- 从字符串创建 JavaScript 函数
- 使用计算名称创建 JavaScript 对象
- 什么是创建 JavaScript 类的适当、现代和跨浏览器安全的方法
- 创建 JavaScript 构造函数时的语法错误
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- php在foreach循环中创建javascript
- 创建javascript模块
- 如何从数组中动态创建javascript变量
- 创建JavaScript库:更改实际图像
- 如何创建javascript执行器,使元素在selenium webdriver中可见
- 如何在我的服务器上创建javascript,该服务器使用该服务器上的后端,并将在另一个网站上使用
- 创建javascript子类型的实例会产生意外行为
- 如何创建javascript顺序动画