单个视图页面中的多个 Table Asp.net 4
Multiple Table in Single View Page Asp.net 4
我想在一个视图中显示两个 2 表。我不想将其显示为列表,而是详细说明,而且大多数教程我都使用列表视图。
我尝试了以下视频:
https://youtu.be/oN1f2Vpc-wU
现在我遇到的问题是,当我单击 link 打开 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.cshtml
@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>
您没有为与详细视图绑定的视图模型设置值。像这样更改家庭控制器代码:
public ActionResult Index(Guid id)
{
//
UserRegistration ur = db.UserRegistrations.Single(x => x.ClientId == id);
Voucher voucher = db.Vouchers.Single(x => x.CustomerId == id);
ViewModel viewm = new ViewModel();
viewm.FirstName=ur.FirstName;
viewm.LastName=ur.LastName;
viewm.HouseNumber=voucher.HouseNumber;
viewm.Location=voucher.Location;
viewm.PostalCode=voucher.PostalCode;
return View(viewm);
}
我想在一个视图中显示两个 2 表。我不想将其显示为列表,而是详细说明,而且大多数教程我都使用列表视图。
我尝试了以下视频: https://youtu.be/oN1f2Vpc-wU
现在我遇到的问题是,当我单击 link 打开 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.cshtml
@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>
您没有为与详细视图绑定的视图模型设置值。像这样更改家庭控制器代码:
public ActionResult Index(Guid id)
{
//
UserRegistration ur = db.UserRegistrations.Single(x => x.ClientId == id);
Voucher voucher = db.Vouchers.Single(x => x.CustomerId == id);
ViewModel viewm = new ViewModel();
viewm.FirstName=ur.FirstName;
viewm.LastName=ur.LastName;
viewm.HouseNumber=voucher.HouseNumber;
viewm.Location=voucher.Location;
viewm.PostalCode=voucher.PostalCode;
return View(viewm);
}