我有两个模型--Ksiazka.cs和Ludzie.cs,我有一个View Wypozyczone.cshtml,它提供了Ludzie.cs。
Ksiazka.cs
public int Id { get; set; }
public string Nazwa { get; set; }
public string Autor { get; set; }
public int Ilosc { get; set; }
Ludzie.cs
public int Id { get; set; }
public int IdKsiazki { get; set; }
public string Imie { get; set; }
public string Nazwisko { get; set; }
public DateTime DataWyporzyczenia { get; set; }
public DateTime DataOddania { get; set; }
Ksiazka.id = Ludzie.IdKsiazki
我需要让Nazwa回答IdKsiazki。
的Controler
public ActionResult Wypozyczone()
{
var model = _mojaBaza.Ludzie.ToList();
return View(model);
我的观点
<th>
@Html.DisplayNameFor(model => model.IdKsiazki) //I want there Nazwa
</th>
<th>
@Html.DisplayNameFor(model => model.Imie)
</th>
<th>
@Html.DisplayNameFor(model => model.Nazwisko)
</th>
<th>
@Html.DisplayNameFor(model => model.DataWyporzyczenia)
</th>
<th>
@Html.DisplayNameFor(model => model.DataOddania)
</th>
答案 0 :(得分:1)
创建另一个代表所需数据的类(某种视图模型)
'data.frame': 13 obs. of 20 variables:
$ mission.id : int 1 2 3 4 5 6 7 8 9 10 ...
$ mission.date : Factor w/ 1 level "15/08/1943": 1 1 1 1 1 1 1
1 1 1 ...
$ theater.of.operations : Factor w/ 4 levels "CBI","ETO","MTO",..: 3 4
3 3 4 4 4 4 3 3 ...
$ country : Factor w/ 2 levels "GREAT BRITAIN",..: 2 2 2
2 2 2 2 2 2 2 ...
$ air.force : Factor w/ 4 levels "10 AF","12 AF",..: 2 3 2
2 3 3 3 3 2 2 ...
$ aircraft.series : Factor w/ 4 levels "A36","B17","B24",..: 1 3
1 1 3 3 3 2 1 1 ...
$ mission.type : Factor w/ 4 levels "OBJECTIVE BOMBING",..: 4
1 4 4 1 1 3 1 4 4 ...
$ takeoff.base : Factor w/ 2 levels "PONTE OLIVO AIRFIELD",..:
1 2 1 1 2 2 2 2 1 1 ...
$ takeoff.location : Factor w/ 2 levels "SICILY","UNKNOWN": 1 2 1
1 2 2 2 2 1 1 ...
$ target.id : Factor w/ 6 levels "16140","3735",..: 4 6 5 1
6 6 6 6 3 1 ...
$ target.country : Factor w/ 5 levels "BURMA","GERMANY",..: 3 4
3 3 5 4 4 4 3 3 ...
$ target.city.or.area : Factor w/ 10 levels "BERLIN","COSENZA",..: 10
6 2 3 5 4 8 8 9 3 ...
$ target.type : Factor w/ 5 levels "AIRDROME","CITY AREA",..:
4 3 4 4 5 4 4 1 4 4 ...
$ target.industry : Factor w/ 3 levels "ARMAMENT AND ORDNANCE
PLANTS",..: 3 3 3 3 3 3 3 3 3 1 ...
$ target.priority : int 9 1 9 9 1 1 1 1 9 9 ...
$ target.latitude : num 38.22 -7.17 39.27 38.43 -1.12 ...
$ target.longitude : num 15.4 147 16.2 15.9 103.9 ...
$ altitude..hundreds.of.feet.: int 139 44 139 139 60 35 70 40 139 139 ...
$ source.id : Factor w/ 9 levels "11287","11326",..: 9 8 9
9 3 7 1 2 9 9 ...
$ bomb.type : Factor w/ 2 levels "HIGH EXPLOSIVES",..: 1 1
1 1 1 1 1 1 1 1 ...
在控制器中创建此“viewmodel”
public class LudzieKsiazka
{
public Ludzie Ludzie { get; set; }
public Ksiazka Ksiazka { get; set; }
}
然后在视图中使用此“viewmodel”
public ActionResult Wypozyczone()
{
var model = _mojaBaza.Ludzie.FirstOrDefault();
var ksiazka = _mojaBaza.Ksiazka.FirstOrDefault(kz => kz.Id = model.IdKsiazki);
var viewmodel = new LudzieKsiazka { Ludzie = model, Ksiazka = kziazka };
return View(viewmodel);
}
答案 1 :(得分:0)
如果您想在视图中使用多个模型,请使用Tuple:
所以你的观点应该是这样的东西
@model Tuple<Ksiazka,Ludzie>
<th>
@Html.DisplayNameFor(tuple => tuple.Item1.Nazwa ) //I want there Nazwa
</th>
<th>
@Html.DisplayNameFor(tuple => tuple.Item2.Imie)
</th>
<th>
@Html.DisplayNameFor(tuple => tuple.Item2.Nazwisko)
</th>
<th>
@Html.DisplayNameFor(tuple => tuple.Item2.DataWyporzyczenia)
</th>
<th>
@Html.DisplayNameFor(tuple => tuple.Item2.DataOddania)
</th>
答案 2 :(得分:0)
即使在您的问题中,您已指出2个型号,但您不需要两个型号。您的问题是您当前的实体模型没有关系的一对一导航属性。
只是听你的代码,因为它告诉你它需要什么:你的视图是要求来自另一个类的更多信息,所以你的视图需要一个模型,其中包含你拥有的两个模型的信息。在Ludzie
课程中,您需要一个导航属性,以便它可以保存Ksiazka
的信息:
public class Ludzie
{
// You need this property
public Ksiazka Ksiazka { get; set; }
}
然后,当您加载Ludzie
时,您将可以访问Ksiazka
。然后在您的视图中,您可以执行此操作:
// You can access Nazwa
@Html.DisplayNameFor(model => model.Ksiazka.Nazwa)
您可以在导航属性上阅读更多here。