如何在MVC中绑定模型类

时间:2015-11-09 05:45:42

标签: asp.net-mvc-4

我正在从商店程序中检索记录,但它没有将数据绑定到视图中。

这是ModelContext类:

namespace MyTesting.Models
{
    public class TvSerialDB
    {
        public static string constr = ConfigurationManager.ConnectionStrings["TvSerialContext"].ConnectionString;
        SqlConnection con;
        SqlCommand cmd;
        public IEnumerable<TVSerialByGroup> tvserialgroupby(string serialname)
        {
            List<TVSerialByGroup> tvserials = new List<TVSerialByGroup>();
            using (con = new SqlConnection(constr))
            {
                cmd = new SqlCommand("pSerialListGroupBySerialName", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@SerialName", SqlDbType.VarChar, 100).Value = serialname;
                con.Open();
                SqlDataReader sdr = cmd.ExecuteReader();
                while (sdr.Read())
                {
                    TVSerialByGroup tvs = new TVSerialByGroup();
                    tvs.Series_Name = sdr["Series_Name"].ToString();
                    tvs.Image_Url_Big = sdr["Image_Url_Big"].ToString();
                    tvs.Season_No = sdr["Season_No"].ToString();
                    tvs.TotalEpisode = sdr["TotalEpisode"].ToString();
                }
            }
            return tvserials;
        }
    }
}


这是ModelClass:

namespace MyTesting.Models
{  

    public class TVSerialByGroup
    {       
        public string Series_Name { get; set; }
        public string Season_No { get; set; }
        public string Image_Url_Big { get; set; }
        public string TotalEpisode { get; set; }
    }
}


这是控制器类:

public ActionResult ListAllSeason(string serial)
        {
            try
            {
                TvSerialDB tvcon = new TvSerialDB();
                List<TVSerialByGroup> tv = tvcon.tvserialgroupby(serial).ToList();                  
                return View(tv);
            }
            catch (Exception ex)
            {
                return Content(ex.Message);
            }
        }

当我运行此应用程序时,它不会显示任何记录,也不会出错。 当我通过断点调试此代码时,它会将行返回到存储过程,但在视图中它不会绑定数据。

1 个答案:

答案 0 :(得分:1)

您没有将模型实例添加到集合中。

while (sdr.Read())
{
    TVSerialByGroup tvs = new TVSerialByGroup();
    tvs.Series_Name = sdr["Series_Name"].ToString();
    tvs.Image_Url_Big = sdr["Image_Url_Big"].ToString();
    tvs.Season_No = sdr["Season_No"].ToString();
    tvs.TotalEpisode = sdr["TotalEpisode"].ToString();
    tvserials.Add(tvs); // add this
}

附注:自初始化List<TVSerialByGroup>以来,您可以制作方法public List<TVSerialByGroup> tvserialgroupby(string serialname),然后.ToList();方法中不需要ActionResult