在ASP,NET MVC中为每个循环嵌套打印带有行和列的列表

时间:2018-07-16 14:41:07

标签: asp.net 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>

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

2 个答案:

答案 0 :(得分:0)

如果您使用的是您所说的表格。

@for (int i = 0; i < ViewBag.MovieList.Count; i++)
{
    <td>
        <h1>@ViewBag.MovieList.IndexOf(i)</h1>
    </td>
    <td>
        //whatever is next
    </td>
}

但是我只想发表评论

答案 1 :(得分:0)

不确定“在一行表中动态包含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>