J'ai cette liste déroulante qui se remplit avec des valeurs de DB, mais est en quelque sorte nulle quand il arrive à la vue.MvC DropDownList avec la connexion à DB
Ceci est mon modèle
public class ListProblem
{
SqlConnection conn = new SqlConnection();
List<ListProblem> ProblemList = new List<ListProblem>();
public string Title { get; set; }
public int ID { get; set; }
ListProblem p = null;
public List<ListProblem> GetProblems()
{
conn.ConnectionString = "Data Source=IBWS05\\MSSQLSERVER2012;Initial Catalog=Houston;Integrated Security=True";
conn.Open();
using (conn)
{
SqlCommand cmd = new SqlCommand("Select Title from Problems");
cmd.Connection = conn;
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
p = new ListProblem();
p.Title = rd["Title"].ToString();
ProblemList.Add(p);
}
}
return ProblemList;
}
}
Et ceci est mon contrôleur
public ActionResult Index()
{
GetProblems();
return View("~/Views/OurFolder.cshtml");
}
public ActionResult GetProblems()
{
ListProblem list = new ListProblem();
List<ListProblem> l = new List<ListProblem>();
l = list.GetProblems();
ViewData["Problem"] = l;
return View("~/Views/OurFolder.cshtml", list);
}
Et à mon avis
@Html.DropDownListFor(model=>model.Id,new `SelectList(Model.Title,"ID","Title","Select option"))`
Quelqu'un peut-il s'il vous plaît me dire, ce que je fais mal et comment résoudre cela?
Vous donnez à View une liste de 'ListProblem', mais il ne ressemble pas à votre modèle Tapez dans la vue (mais vous ne l'avez pas montré). Et, FWIW, ce n'est pas un modèle, vous ne devriez pas avoir votre modèle faisant toute cette logique. – Crowcoder