Я пытаюсь отобразить две 2 таблицы в одном представлении. Я не хочу отображать его в виде списка, а хочу детализировать, и в большинстве руководств я получаю представление списков.
Я попробовал следующее видео: https://youtu.be/oN1f2Vpc-wU
Другая ссылка: https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application
Теперь проблема у меня заключается в том, что когда я нажимаю ссылку, чтобы открыть страницу сведений о ViewModel, отображается значение null.
Модель 1
[Table("UserRegistration")]
public partial class UserRegistration
{
[Key]
public Guid ClientId { get; set; }
[StringLength(50)]
public string FirstName { get; set; }
[StringLength(50)]
public string LastName { get; set; }
[StringLength(50)]
public string IdentityNumber { get; set; }
[StringLength(50)]
public string PhoneNumber { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
[Column(TypeName = "date")]
public DateTime? DateCreated { get; set; }
}
Модель 2
[Table("Voucher")]
public partial class Voucher
{
public int VoucherId { get; set; }
public Guid? CustomerId { get; set; }
[StringLength(50)]
public string HouseNumber { get; set; }
[StringLength(50)]
public string PostalCode { get; set; }
[StringLength(50)]
public string Location { get; set; }
[Column(TypeName = "date")]
public DateTime? DateCreated { get; set; }
}
ViewModel
public class ViewModel
{
public Guid? CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string IdentityNumber { get; set; }
public string HouseNumber { get; set; }
public string PostalCode { get; set; }
public string Location { get; set; }
}
Регистрация пользователя контроллера
private mymodel db = new mymodel();
// GET: UserRegistrations
public ActionResult Index()
{
return View(db.UserRegistrations.ToList());
}
Главный экран контроллера
private mymodel db = new mymodel();
// GET: Home
public ActionResult Index(Guid id)
{
//
UserRegistration ur = db.UserRegistrations.Single(x => x.ClientId == id);
Voucher voucher = new Voucher();
ViewModel viewm = new ViewModel();
ur.FirstName = viewm.FirstName;
ur.LastName = viewm.LastName;
voucher.HouseNumber = viewm.HouseNumber;
voucher.Location = viewm.Location;
voucher.PostalCode = viewm.PostalCode;
return View(viewm);
}
Index.cs html
@model ExampleTestMVC.Models.ViewModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<div>
<h4>UserRegistration</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.FirstName)
</dt>
<dd>
@Html.DisplayFor(model => model.FirstName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.LastName)
</dt>
<dd>
@Html.DisplayFor(model => model.LastName)
</dd>
<dt>
@Html.DisplayNameFor(model => model.HouseNumber)
</dt>
<dd>
@Html.DisplayFor(model => model.Location)
</dd>
<dt>
@Html.DisplayNameFor(model => model.PostalCode)
</dt>
<dd>
@Html.DisplayFor(model => model.PostalCode)
</dd>
</dl>
Index. chtml для регистрации пользователя
@model IEnumerable<ExampleTestMVC.Models.UserRegistration>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.FirstName)
</th>
<th>
@Html.DisplayNameFor(model => model.LastName)
</th>
<th>
@Html.DisplayNameFor(model => model.IdentityNumber)
</th>
<th>
@Html.DisplayNameFor(model => model.PhoneNumber)
</th>
<th>
@Html.DisplayNameFor(model => model.Password)
</th>
<th>
@Html.DisplayNameFor(model => model.ConfirmPassword)
</th>
<th>
@Html.DisplayNameFor(model => model.DateCreated)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.IdentityNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhoneNumber)
</td>
<td>
@Html.DisplayFor(modelItem => item.Password)
</td>
<td>
@Html.DisplayFor(modelItem => item.ConfirmPassword)
</td>
<td>
@Html.DisplayFor(modelItem => item.DateCreated)
</td>
<td>
@Html.ActionLink("details of everything", "Index", "Home", new { id = item.ClientId }, null) |
</td>
</tr>
}
</table>