首页 > 解决方案 > 在asp,net mvc中为每个循环嵌套的行和列打印列表

问题描述

我想通过viewbag将数据从sql打印到我的视图,这是cs类的代码,我将数据添加到列表并在viewbag中返回,但我想在一行表中动态检索5列..所以不要,不了解如何将其设置为每行 5 列的视图..

检查演示代码控制器代码

public class moviestb
    {
        public int movieid { get; set; }
        public String moviename { get; set; }
    }


 public class MoviesController : Controller
    {
        SqlConnection con;
        SqlCommand cmd;
        SqlDataReader rdr;
        public MoviesController()
        {
            try
            {
                con = new SqlConnection(ConfigurationManager.ConnectionStrings["procon"].ConnectionString);
            }
            catch(Exception ex)
            {
           //Any Msg
            }

            con.Open();




             String   Query ="select * from movietb";

            cmd = new SqlCommand(Query, con);
            rdr = cmd.ExecuteReader();
            List<moviestb> mov = new List<moviestb>();

            while(rdr.Read())
            {
               mov.Add( new moviestb(){movieid=Convert.ToInt16(rdr["m_id"]), moviename= rdr["m_name"].ToString()}); 
            }

        }
 ViewBag.MovieList = mov;
        con.Close();
        return View();

在这里查看代码我想要每列 5 行

    <table>

    @foreach (var m in ViewBag.MovieList)
    {
        <tr>
            <td>id = @m.Id title= @m.Title</td>
        </tr>
    }
</table>

在这里,我想在一个 td 中设置电影 ID、标题和图像 .. 我希望每次迭代 5 个 td,当我在上面运行代码时,我在一行中获取数据我想要像这样的数据看这个 [link] (prntscr.com/ k754ho)

标签: asp.netasp.net-mvc

解决方案


不太清楚“动态一行表中的 5 列”是什么意思,但您可以创建这样的表。

模型

public class Movie
{
    public int Id { get; set; }
    public string Title { get; set; }
}

服务

我会把它移到一个单独的班级。

    private IEnumerable<Movie> LoadMovies()
    {
        var connectionString = ConfigurationManager.ConnectionStrings["procon"].ConnectionString;
        using (var connection = new SqlConnection(connectionString))
        {
            using (var command = new SqlCommand("select * from movietb"))
            {
                connection.Open();
                using (var reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        yield return new Movie
                        {
                            Id = (int)reader["m_id"],
                            Title = reader["m_name"].ToString()
                        };
                    }
                }
            }
        }

    }

控制器

    public ActionResult Index()
    {
        var movies = LoadMovies().ToList();            
        ViewBag.MovieList = movies;
        return View();
    }

看法

<table>
    <th>
        <td>Id</td>
        <td>Title</td>
    </th>
    @foreach (var m in ViewBag.MovieList)
    {
        <tr>
            <td>@m.Id</td>
            <td>@m.Title</td>
        </tr>
    }
</table>

推荐阅读