如何在ASP.NET MVC中预览脚本内部标记
How to foreach inside script tag in ASP.NET MVC
这是我的日历代码:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script>
$(document).ready(function () {
$('#calendar').fullCalendar({
editable: false,
events: [{
@foreach (var item in Model) {
title : @Html.DisplayFor(modelItem => item.EventName),
start : @Html.DisplayFor(modelItem => item.StartDate),
end : @Html.DisplayFor(modelItem => item.EndDate)
}
}]
});
});
</script>
}
我的foreach内部有一些问题,@Html.DisplayFor(modelItem => item.EventName), @Html.DisplayFor(modelItem => item.StartDate)
和@Html.DisplayFor(modelItem => item.EndDate)
都是红色下划线,所以我不知道该更改或修复什么
谢谢。
@Html.Raw
在这种情况下应该适用。
$(document).ready(function () {
$('#calendar').fullCalendar({
editable: false,
events: [{
@foreach (var item in Model) {
@Html.Raw("title :"+item.EventName+",start :"+ item.StartDate+",end :"+ item.EndDate);
}
}]
});
});
由于您可能希望每个数组项都有一个JSON对象,因此需要为每个项发出一对{}大括号。我在下面用外括号加上绳子做了这个。加入以发射内部的。只有当列表中至少有一个项目时,此操作才能正常工作。希望我所有的牙套都匹配。使用Html.Raw时要注意,如果用户指定了"EventName"之类的内容,他们可能会嵌入恶意javascript,因此如果是这样,您应该采取适当的预防措施来清除/编码这些值。
events:
[
@(Html.Raw("{"
+ string.Join("},{",
Model.Select(m=> "title:'"" + m.EventName + "'",start:'"" + item.StartDate + "'",end:'"" + item.EndDate + "'"" ))
+ "}" )
)
]
使用浏览器检查生成的HTML,看看是否得到了预期的javascript。
相关文章:
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- URL内部的元标记和脚本处理
- 如何在内部脚本完全加载后运行脚本
- 使用内部脚本的SVG单选按钮逻辑
- 调用AngularJS内部<脚本>标签
- 使用内部脚本设置innerHTML
- 如何在ASP.NET MVC中预览脚本内部标记
- 使用内部脚本更改表单元格 css,而不依赖于 id、类或包含
- 如何将脚本元素从 iframe 内部复制到父元素
- 使用 ajax 作为注释表单,它给了我 500 个内部错误,但没有脚本它可以工作,这意味着我的脚本是错误的;对
- 知道脚本内部脚本的 URL
- JS从内部获取脚本参数
- 文档.写入脚本内部不执行脚本
- 反应:使用危险设置内部HTML插入时脚本标记不起作用
- 如何在java脚本中获取节点内部文本
- 从脚本标记内部获取脚本标记的父级
- HTML 模板和 HTML 导入 - 内部脚本未在 Firefox 中执行
- 从动态添加的脚本标记中获取内部 HTML
- 在脚本内部循环一个单词并对其进行更改
- 在asp.net mvc 3 razor部分视图中执行jquery.ajax的脚本src和脚本内部代码的区别