--------------任何时候Razor有了二义性,都可以用圆括号指明想要的内容
@{string str="zhangdi";
MvcApplication1.Models.Album alb=new MvcApplication1.Models.Album ();
alb.Title = "a";
}
<!--输出:zhangdi.aa-->
<li>@(str).aa</li>
<!--输出:962410314a-->
<li>962410314@(alb.Title)</li>
<!--输出962410314 @alb.Title-->
<li>962410314 @@alb.Title</li>
--------------Html编码
@{
string script = "<script>alert('xss***')</script>";
}
<!--不显示html标记-->
<li>@script</li>
<!--显示html标记-->
<li>@Html.Raw(script)</li>
<script type="text/javascript">
$(function () {
var msg = '@ViewBag.User';
$("#message").html(msg);
var msg2 = '@Ajax.JavaScriptStringEncode(ViewBag.User)';
$("#message2").html(msg2);
});
</script>
<li id="message"></li><!--输出:<script>alert('asdasd')</script>-->
<li id="message2"></li><!--输出:弹出框'asdasd'-->
<!--显示:\u003cscript\u003ealert(\u0027asdasd\u0027)\u003c/script\u003e-->
@Ajax.JavaScriptStringEncode(ViewBag.User)
--------------Razor语法
<!--1,隐式识别代码-->
<li>@ViewBag.Message</li>
<!--2,显示识别代码-->
<li>Show@(ViewBag.Message)</li>
<!--3,无编码代码-->
<li>@Html.Raw(ViewBag.Message)</li>
<!--4,代码块-->
@{
int x = 1;
string abc = "abc";
}
<!--5,文本域标记相结合-->
@foreach (var item in new int[]{1,2,3})
{
<li>@item</li>
}
<!--6,混合代码与纯文本-->
@if (ViewBag.Message == "<h style='color:red'>zhangdi</h>")
{
<text>张迪</text>
}
@*7,转义代码分隔符(转义为@)*@
<li>@@</li>
<!--8,服务器的注释-->
@*
@for (int i = 0; i < 10; i++)
{
}*@
<!--9,调用泛型方法-->
@*泛型方法等也需要显示使用(),因为"<"标记会使Razor转回标记*@
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。