依據 ScottGu先生文章,釐清新語法之觀念
●HTML Encoding
●New <%: %> Code Nugget Syntax
為了方便開發者快速檢視自己的專案並修改,新的語法採<%: %>,它的樣子非常類似<%= %>,同樣能render output,只是新語法會自動encode
舊版寫法要多一道Encode的手續
新版寫法會自動處理~寫來就比較簡潔
●Avoiding Double Encoding
為了避免重複Encoding,可以一律採用新語法,它會自動判斷是否需要Encode
例如Html.TextBoxFor的傳回值類型是System.Web.Mvc.MvcHtmlString,無須再Encoding
System.Web.Mvc.MvcHtmlString
來源參考:MvcHtmlString
說明:表示不應該再次編碼的 HTML 編碼字串。
●Scaffolding ASP.NET MVC 2 Views
透過VS2010的Scaffold Template為例子,展現出現在的View Template都用新語法
●Summary
新語法的好處有
1. 簡化程式,可輕易檢查/驗證網站中的HTML都有正確的encoding
2. 協助應用程式免於XSS(cross-site script injection) 和 HTML injection攻擊
參考文章
1. New <%: %> Syntax for HTML Encoding Output in ASP.NET 4 (and ASP.NET MVC 2)
2. Html Encoding Code Blocks With ASP.NET 4
2 則留言:
慘了~~居然看不懂你在寫啥
@啾小然:是mvc啦~我現在都用這個寫,而非一般的asp
張貼留言