我想在视图中显示两个表的元素,但我不知道如何。
在我的视图中我有@model IEnumerable指向模型的'Tmembre'类和数据库中表'Tmembre'的对应。 我可以在我的视图中显示此表的元素,确定。
但我也想在这个视图中显示另一个表的元素,我不能在视图中放置其他@modeldéclaration。
我尝试在模型中为两个表创建一个类并将sql放在模型中但我认为它不在模型中我必须请求DB。
public class myviewmodel
{
public Tmembre tmembre { get; set; }
public List<Tmembre> GetlstMembre { // SQL }
public TAssociation tassociation { get; set; }
public List<TAssociation> GetlstAssociation { // SQL }
}
答案 0 :(得分:1)
在您的控制器中,您可以创建上述ViewModel的新实例,并使用数据库中的数据填充成员。
完成后,您应该将此ViewModel返回到View;
public ActionResult Index()
{
MyViewModel myViewModel = new MyViewModel();
myViewModel.lstmembre = ....;
myViewModel.1stassociation = ...;
return View(myViewModel);
}
在您的视图中,您现在可以将@model指定为视图模型
@model myproject.web.models.MyViewModel
现在,您可以从视图中访问此模型的所有成员
Model.1stmembre
Model.1stassociation
Model.tmembre
etc..
答案 1 :(得分:0)
行 ViewBag.Message =&#34; Liste des membres&#34 ;;
//Chercher les informations du membre connecté
//Tmembre Membre = db.TmembresansEDMdb.Find(10);
//TAssociation association = db.dbTassociation.Find(Membre.Idassociation);
//ViewData.Model = (from a in db.TmembresansEDMdb
// where a.Idassociation == Membre.Idassociation
// select a );
myviewmodel mymodel = new myviewmodel();
Tmembre Membre = db.TmembresansEDMdb.Find(1);
mymodel.lstassociation = db.dbTassociation.ToList();
ViewData["Idassociation"] = Membre.Idassociation;
mymodel.lstmembre= (from a in db.TmembresansEDMdb
where a.Idassociation == Membre.Idassociation
select a ).ToList();
return View(mymodel);
在视图中
@foreach (var item in Model.lstassociation)
{
if (item.Nomassociation == @ViewData["Idassociation"])
{
<option selected>@item.Nomassociation</option>
} else {
<option>@item.Nomassociation</option>
}
}
@foreach (var item in Model.lstmembre) {
<div class="divmembre">
<div class="dphoto"><img src="~/Content/@item.SRCImage"/></div>
<div class="containerdetail">
<div class="ddetail">
<div class="ddetaild nom">@item.Nommembre</div>
<div class="ddetaild prenom">@item.Prenommembre</div>
<div class="ddetaild mail">@item.Mailmembre</div>
</div>
</div>
</div>
}
显示lstmembre的所有元素,但我想在列表中选择与视图数据中的Idassociation对应的表Association的元素。我有消息:没有切入点 if(item.Nomassociation == ViewData [&#34; Idassociation&#34;])
但如果我在HTML标签中使用@ViewData [&#34; Idassociation&#34;]而不是在循环中就可以了,则会显示该值。我认为这只是一个语法错误。 TKS