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方法,结果如下:

    感谢阅读!

    回到目录

  • 相关阅读:
    flask框架的使用
    git的基本使用
    pycharm连接数据库以及遇到的问题
    Git原理与Git命令大全
    git使用
    Redis 数据库
    ATM项目
    跨域问题及解决方案
    django的信号
    django的缓存机制
  • 原文地址:https://www.cnblogs.com/lori/p/2866528.html
Copyright © 2011-2022 走看看