ASP.NET的视图(Razor)循环产生html代码

需要要视图中Razor语法,循环产生一些html代码。

产生后的html是这样的:


 <li data-transition="fade" data-slotamount="7" data-masterspeed="1500">
                    <img src="~/Content/img/slider-images/XXX1111.jpg" alt="XXX2222">
                    <div class="tp-caption tp-resizeme sfb  fadeout white-color very_large_text"
                         data-x="center"
                         data-y="center"
                         data-voffset="0"
                         data-speed="1000"
                         data-start="1800"
                         data-easing="Power4.easeOut">
                        <h1>
                            XXX3333
                        </h1>
                    </div>
                </li>
Source Code

 

上面的图片中,只是高亮部分不相同。

最懒的主法,循环几次,拷贝与粘贴几次,然后修改不相同(高亮)的代码。


第二种方法,使用C#的循环产生:


 SliderEntity se = new SliderEntity();
                    se.Sliders().ForEach(delegate (Slider s)
                    {
                        WriteLiteral("<li data-transition=\"fade\" data-slotamount=\"7\" data-masterspeed=\"1500\">");
                        WriteLiteral("<img src=\"" + Url.Content("~/Content/img/slider-images/" + s.ImageUrl) + "\" alt=\"" + s.Description + "\"/>");
                        WriteLiteral("<div class=\"tp-caption tp-resizeme sfb  fadeout white-color very_large_text\"");
                        WriteLiteral("data-x=\"center\"");
                        WriteLiteral("data-y=\"center\"");
                        WriteLiteral("data-voffset=\"0\"");
                        WriteLiteral("data-speed=\"1000\"");
                        WriteLiteral("data-start=\"1800\"");
                        WriteLiteral("data-easing=\"Power4.easeOut\">");
                        WriteLiteral("<h1>");
                        WriteLiteral(s.Title);
                        WriteLiteral("</h1>");
                        WriteLiteral("</div>");
                        WriteLiteral("</li>");
                    });
Source Code


这种方法,会比第一种方法好,毕竟它已经使用了Foreach方法了。不过在创建这个方法时,也得花上不少时间。使用"\"来处理双引号的问题。

 

第三种,Insus.NET想到,直接使用Razor的foreach方法,它也是循环,不过它神奇的快速实现:

 

 @foreach (var item in (new SliderEntity()).Sliders())
                    {
                        <li data-transition="fade" data-slotamount="7" data-masterspeed="1500">
                            <img src="~/Content/img/slider-images/@item.ImageUrl" alt=@item.Description>
                            <div class="tp-caption tp-resizeme sfb  fadeout white-color very_large_text"
                                 data-x="center"
                                 data-y="center"
                                 data-voffset="0"
                                 data-speed="1000"
                                 data-start="1800"
                                 data-easing="Power4.easeOut">
                                <h1>
                                    @item.Title
                                </h1>
                            </div>
                        </li>
                    }
Source Code

 

快的原因,foreach方法,直接可以写html代码。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值