zoukankan      html  css  js  c++  java
  • 爱上MVC~Razor引擎时,在遍历中巧用Output.Write方法

    回到目录

    在Razor引擎中,对于在表格中进行遍历时,一般会这样写

    <table border="1">
        @{ 
            for (var i = 0; i < 10; i++)
            {
            <tr>
                <td>
                    @i
                </td>
            </tr>
            }
        }
    </table>

    这是没有问题的,但如果你的元素i,希望在一行显示2列,你应该如何去做,下面的代码是不被razor接受的

    <table border="1">
        @{ 
            for (var i = 0; i < 10; i++)
            {
                if (i % 2 == 0)
                {
            <tr>
                }
                <td>
                    @i
                </td>
                if(i%2!=0){
            </tr>
                }
            }
        }
    </table>

    这种写法在运行时会抛出异常的,因为razor特有的对标记的智能识别,省去了<%%>这种结尾标记,所以上面的写法对于razor是不能接受的,我

    们需要把代码修改一下,把<tr>标记写在程序里,代码如下:

    <table border="1">
        @{ 
            for (var i = 0; i < 10; i++)
            {
                if (i % 2 == 0)
                {
                    Output.Write("<tr>");
                }
            <td>
                @i
            </td>
           if (i % 2 != 0)
           {
               Output.Write("</tr>");
           }
            }
        }
    </table>

    注意,我们在输出时没有用Write,也没有用Response.Write,因为这两种输出都不能在原位置进行输出,而如果希望在原位置输出指定字符,需要

    使用Output对象的Write方法,结果如下:

    感谢阅读!

    回到目录

  • 相关阅读:
    Access导入MSSQL SERVER
    Centos8停用、启用、查看当前启用的端口
    CentOS下使用VI
    CentOS关机与重启命令
    华为云CentOS8安装FTP
    华为云CentOS8安装JDK
    华为云CentOS8安装Nginx
    华为云CentOS8安装Redis
    华为云CentOS8安装MYSQL
    oracle 本地导入imp bat的写法
  • 原文地址:https://www.cnblogs.com/lori/p/2866528.html
Copyright © 2011-2022 走看看