iLe*_*ing 58 javascript jquery jquery-plugins razor asp.net-mvc-3
我在我的MVC3项目中使用Razor.而且我也在使用FullCalendar JQuery插件.因此,当我试图填充数组时,它运行良好.除了一件事.如果s.Name包含撇号,它就会像'我想要的那样渲染.我尝试使用不同的方法,如Encode和Decode,甚至MvcHtmlString.Create,结果总是一样的.
这是代码片段:
<head>
<script type='text/javascript'>
$(document).ready(function () {
$('#calendar').fullCalendar({
header: {
left: '',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
month: 5,
year: 2011,
editable: false,
events: [
@foreach (var s in ViewBag.Sessions)
{
@:{
@: title: '@s.Name',
@: start: new Date(@s.Starts.Year, @s.Starts.Month-1, @s.Starts.Day),
@: end: new Date(@s.Ends.Year, @s.Ends.Month-1, @s.Ends.Day)
@:},
}
]
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
GvS*_*GvS 106
我会像这样写你的foreach:
@foreach (var s in ViewBag.Sessions)
{
<text>
{
title: '@Html.Raw(HttpUtility.JavaScriptStringEncode(s.Name))',
start: new Date(@s.Starts.Year, @s.Starts.Month-1, @s.Starts.Day),
end: new Date(@s.Ends.Year, @s.Ends.Month-1, @s.Ends.Day)
},
</text>
}
Run Code Online (Sandbox Code Playgroud)
Html.Raw 跳过html转义.<text> 多线输出更好.Fab*_*ice 79
这是怎么做的:
title: '@Html.Raw(HttpUtility.JavaScriptStringEncode(s.Name))'
Run Code Online (Sandbox Code Playgroud)
像这样尝试:
$(function () {
$('#calendar').fullCalendar({
header: {
left: '',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
month: 5,
year: 2011,
editable: false,
events: @Html.Raw(new JavaScriptSerializer().Serialize(ViewBag.Sessions))
});
});
Run Code Online (Sandbox Code Playgroud)
ViewBag.Sessions可能需要进行一些修改才能获得所需的结果(在属性名称方面),这让我想起了ViewBag当我看到有人使用它时的通常评论:使用ViewBag是不好的做法,我建议您使用带有查看模型。
HttpUtility.JavaScriptStringEncode这里并不是真正需要的。简单地
'@Html.Raw(s.Name)'
Run Code Online (Sandbox Code Playgroud)
对我有用。
| 归档时间: |
|
| 查看次数: |
50776 次 |
| 最近记录: |