Я в ситуации, когда мне хотелось бы иметь две модели на мой взгляд. Я пытался сделать это, как в контроллере ниже, но я не уверен, как это сделать, но я предполагаю, что это что-то, что делает экземпляр WellViewModel, а затем создавая и добавляя к соответствующие списки, содержит WellViewModel, но я думаю, что я немного путал его, так как я не могу заставить его работать. Любые намеки?ASP MVC Использование ViewModel
Это мои модели, которые я положил в ViewModel:
public class WellViewModel
{
public List<WellModel> Wells { get; set; }
public List<AnnotationModel> Annotations { get; set; }
}
И это, где я извлечения данных из базы данных:
public ActionResult Well(string slideid)
{
WellViewModel model = new WellViewModel();
string cs = dbPath;
using (SQLiteConnection con = new SQLiteConnection(cs))
{
string stm = "SELECT * FROM Well WHERE SlideId = " + "'" + slideid + "'";
con.Open();
using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
{
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
model.Wells = new List<WellModel>() { new WellModel()} //This is not possible to do
{
SlideId = rdr["SlideId"].ToString(),
Well = int.Parse(rdr["Well"].ToString()),
TimeStamp = rdr["TimeStamp"].ToString()
};
}
rdr.Close();
}
}
con.Close();
}
using (SQLiteConnection con = new SQLiteConnection(cs))
{
string stm = "SELECT * FROM Annotation WHERE SlideId = " + "'" + slideid + "'";
con.Open();
using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
{
using (SQLiteDataReader rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
Annotations = new AnnotationModel
{
SlideId = rdr["SlideId"].ToString(),
Well = int.Parse(rdr["Well"].ToString()),
Par = rdr["Par"].ToString(),
Time = rdr["Time"].ToString(),
Val = rdr["Val"].ToString(),
TimeStamp = rdr["TimeStamp"].ToString()
};
}
rdr.Close();
}
}
con.Close();
}
return View(model);
}
хорошая идея для установки начальных значений в конструкторе. – Ric
Спасибо @Ric. Это мой обычный подход, потому что это очень легко, и вам не нужно запоминать настройку своего списка сначала ... – brothers28
Что-то, что меня сильно укусит. – Ric