首页 > Web开发 > 详细

MVC3----Razor语法

时间:2014-11-26 19:13:32      阅读:323      评论:0      收藏:0      [点我收藏+]

--------------任何时候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转回标记*@


本文出自 “程序猿的家--Hunter” 博客,请务必保留此出处http://962410314.blog.51cto.com/7563109/1582879

MVC3----Razor语法

原文:http://962410314.blog.51cto.com/7563109/1582879

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!