Razor 条件 / 循环输出

控制器Controller传递数组到View视图,在cshtml视图页面用Razor语法做循环、条件判断渲染页面,列表展示页面非常常用。

1. Controller控制器代码(HomeController.cs)

public ActionResult Show()
{
    //定义字符串数组
    string[] arr = { "一", "二", "三", "四", "五", "六", "七", "八", "九", "十" };
    //通过ViewData把数组传给视图
    ViewData["arr"] = arr;
    return View();
}Code language: PHP (php)

2. 视图 Show.cshtml

@{
    ViewBag.Title = "Show";
    Layout = "~/Views/Shared/_Layout.cshtml";
    //把ViewData取出,强制转为字符串数组
    string[] ary = ViewData["arr"] as string[];
}

<h2>新闻详情</h2>

@* foreach遍历数组 *@
@foreach (var item in ary)
{
    @item <br/>
}

@* if条件 + for循环 + continue跳转 *@
@if (ary.Length>5)
{
    for (int i = 0; i < ary.Length; i++)
    {
        if (i==5)
        {
            //i等于5的时候跳过本次循环,不输出
            continue;
        }
        @ary[i] <br/>
    }
}Code language: PHP (php)

说明

  1. @{ }:Razor代码块,写C#后台逻辑,不输出到html
  2. @变量:输出变量内容渲染到页面
  3. @foreach:Razor遍历集合/数组,最常用做列表渲染
  4. @if:Razor条件判断
  5. for循环 + continuecontinue跳出本次循环,直接进入下一轮循环
  6. ViewData["key"]:控制器向视图传数据,视图取出需要做类型转换 as string[]

运行

  • foreach会输出:一、二、三、四、五、六、七、八、九、十
  • for循环遇到i==5执行continue跳过下标5(“六”),输出:一、二、三、四、五、七、八、九、十

Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注