我想创建一个viewmodel,在我的视图中访问我创建的两个不同的模型。
为此,我创建了两个不同的模型和一个我包含两个模型的模型。
我的问题是,在我看来,我无法访问数据。
希望任何人都可以帮忙解决这个问题。
我认为需要表达的是: 表格1 : 名称 标题
表2: 每张图片的picpath
这是我的代码:
模型1:
public class Table1
{
public int ID { get; set; }
public string name{ get; set; }
public string title { get; set; }
public string edition{ get; set; }
public string number{ get; set; }
}
public class DefaultConnection : DbContext
{
public DbSet<Table1> Res{ get; set; }
}
模型2:
public class Images
{
public SelectList ImageList { get; set; }
public int ID { get; set; }
public string title{ get; set; }
public string picpath { get; set; }
public Img)
{
ImageList = GetImages();
}
public SelectList GetImages()
{
var list = new List<SelectListItem>();
string connection = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (var con = new SqlConnection(connection))
{
con.Open();
using (var command = new SqlCommand("SELECT * FROM Myimages", con))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string title = reader[1] as string;
string imagePath = reader[2] as string;
list.Add(new SelectListItem() { Text = title, Value = imagePath });
}
}
con.Close();
}
return new SelectList(list, "Value", "Text");
}
}
MY VIEW模型:
public class ViewModel
{
public Table1 table1{ get; set; }
public Images xpto { get; set; }
public ViewModel(Table1 table1)
{
Table1 = table1;
xpto = new Images();
}
}
**Controller:**
public ActionResult HotSpotMaker(int id = 0)
{
Table1 rev = db.Res.Find(id);
if (rev == null)
{
return HttpNotFound();
}
//Here is something missing, have delete my version here because don´t make any sense
return View(rev);
}
查看:
@model myproject.Models.ViewModel
注意:我搜索了很多,并发现很多人都使用它:@model myproject.Web.Models.ViewModel,但是我无法选择这个网站。 。我不知道这是否相关,我想也许这很重要。
答案 0 :(得分:3)
您将Table1
作为视图模型传递,但这不是您的视图模型。
尝试:
return View(new Models.ViewModel(rev));
答案 1 :(得分:1)
嗯,这很简单,你的View
期待一个ViewModel
(顺便说一句,这个名字不好,但我怀疑它只是一个测试),但你给它一个{{1} },您的视图根本不知道如何处理它。
您需要一种方法从Table1
对象
ViewModel
对象
在你的情况下,只需像这样调用你的构造函数
Table1