本文介紹了Javascript、Razor 和 Escape 字符.像撇號的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我在我的 MVC3 項目中使用 Razor.而且我正在使用 FullCalendar JQuery 插件.因此,當我嘗試填充數組時,效果很好.除了一件事.如果 s.Name 包含撇號,它會呈現為 '
這不是我想要的.我嘗試使用不同的方法,例如 Encode 和 Decode,甚至 MvcHtmlString.Create,結果始終相同.
I am using Razor in my MVC3 project. And also I'm using FullCalendar JQuery plugin. So when I'm trying to fill the array it works good. Except one thing. If s.Name contains apostrophe it renders like'
that's not what I want. I tried to use different methods like Encode and Decode and even MvcHtmlString.Create and result is always the same.
這里是代碼片段:
<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>
推薦答案
我會這樣寫你的 foreach:
I would write your foreach like this:
@foreach (var s in ViewBag.Sessions)
{
<text>
{
title: '@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>
}
HttpUtility.JavaScriptStringEncode
轉義引號和 html 標記.<text>
更適合多行輸出.HttpUtility.JavaScriptStringEncode
to escape quotes and html markup.<text>
is nicer for multiline output.
這篇關于Javascript、Razor 和 Escape 字符.像撇號的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!