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

    感谢阅读!

    回到目录

  • 相关阅读:
    Python 接口测试(十)
    接口测试(9)
    flask 部署后并发测试
    unity提示can't add script解决办法
    VUE环境部署
    提高Django高并发性的部署方案(Python)
    解决python发送multipart/form-data请求上传文件的问题
    python md5
    Django-jinjia2的赋值
    python多线程并发
  • 原文地址:https://www.cnblogs.com/lori/p/2866528.html
Copyright © 2011-2022 走看看