我在ASP.NET MVC 2项目的视图(Demo.aspx)中具有以下代码:
Demo.aspx:
<% if (!Model.IsValid) { %><%= Model.FirstName %> - <% } %><%= Model.LastName %> -
在将项目从ASP.NET MVC2迁移到ASP.NET MVC3的过程中,我试图将其转换为剃刀视图(Demo.cshtml)。经过一些分析并遵循以下URL:http : //haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/,用于将Web表单迁移到razor视图,我起草了以下等效代码在剃刀视图中:
Demo.cshtml:
@if (!Model.IsValidName)
{ @Html.Raw(Model.FirstName)
@Html.Raw("-")
}
@Html.Raw(Model.LastName)
@Html.Raw("-")
但是通过使用转换工具:http : //visualstudiogallery.msdn.microsoft.com/d2bfd1ca-9808-417c-b963-eb1ea4896790,我得到了以下代码:
Demo.cshtml:
@if (!Model.IsValidName)
{ @Model.FirstName
@Html.Raw("-")
} @Model.LastName
@Html.Raw("-")
任何人都可以帮助确认以上哪一项是正确的吗?
我建议第二种方法:
@if (!Model.IsValidName)
{ @Model.FirstName
@Html.Raw("-")
} @Model.LastName
@Html.Raw("-")
这样做的原因是出于安全目的。
例如,这@Model.FirstName
将防止XSS攻击,因为@Html.Raw(Model.FirstName)
它绕过了编码,并且允许用户更新自己的FirstName
属性成为可能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句