Mvc Razor视图引擎基础

<1>

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @ViewData["time"];   //可以获取ViewData传递过来的值

        @DateTime.Now.ToString(); //可以直接输出一个c#变量

        <p>@ViewData["time"]</p>  

        @for (int i = 0; i < 10; i++)   //可以直接在@后面写c#代码,它会自动感应{}的闭合
        { 
            <span>@i</span>
        }

        @if (ViewData.Count > 0)    
        { 
            <p>ViewData是有数据的</p>
        }
        else
        { 
            <p>ViewData没有数据</p>
        }


        @{
            //这个@{} 我们称之为Razor的一个语句块
            int j = 10;
            j++;
            <p>@j</p> //输出11
            
         }
         <!-----------------------没有经过编码化了的Html代码------------------------------->

         @{
             //这里是弹出一个窗体,窗体的文本内容是"Dome"
             <script type="text/jscript">alert('Dome')</script>
             
          } 

          <!----------------------------编码化了的Html代码--------------------------------->

         @{ 
             string str="<script>alert('123')</script>"  ;
             <p>@str</p> //这里输出的<script>alert('123')</script>这段代码,而不是弹出一个窗体了。说明这段代码已经被编码化了
                
          }

          <!--假如说我现在就是想在前台页面输出一些Html标签,或一些代码,就想让它原封不动的去执行那段代码,比如说我现在就想给一个Div标签放到页面去,怎么办呢,以下三种方法都可以-->  
              
          @Html.Raw("<script>alert('中国')</script>")   //弹出一个窗体,窗体的内容是“中国”               
          @(new HtmlString("<script>alert('德国')</script>"))  //弹出一个窗体,窗体的内容是“德国”
          
     
          @(new MvcHtmlString("<script>alert('美国')</script>")) //弹出一个窗体,窗体的内容是“美国”



          <!------------------------Razor引擎的数据类型转换------------------------->

          @{
              string s = "123"; 
              <p>@s.IsInt() </p>  //IsInt是检查s这个字符串是否可以转换成int类型:这里输出True
              <p>@s.AsInt()</p> // AsInt是将s这个字符串转换成int类型                    
              
              //当然除了IsInt()外还有IsFloat(),IsDecimal(),IsDateTime(),IsBool()
              //对应的---------------AsFloat(),AsDecimal(),AsDateTime(),AsBool()  

              int a = 123;
              <p>@a.ToString()</p>  //将int类型转换成字符串                              
                                
           }

           
                         
        
    </div>
</body>
</html>


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。