我試圖在 ASP.NET MVC 的一個視圖中使用兩個模型。我已經在 StackOverflow 上查看了與我的相關的問題,但是我似乎無法讓它在我的作業中發揮作用。我了解如何做到這一點的一般想法,但由于某種原因,我無法讓它在我正在處理的代碼上運行。
這些是模型類:
public class Project
{
public int Id { get; set; }
[Required]
[MaxLength(30)]
public string Name { get; set; }
[Required]
public DateTime StartDate { get; set; }
[Required]
public DateTime DueDate { get; set; }
public ICollection<ProjectRole> ProjectRoles { get; set; }
}
public class ProjectRole
{
public int Id { get; set; }
[Required]
public double HourlyRate { get; set; }
[ForeignKey("Person")]
public int PersonId { get; set; }
[ForeignKey("Project")]
public int ProjectId { get; set; }
[ForeignKey("AppRole")]
public int RoleId { get; set; }
}
控制器:
[Authorize]
public class ProjectsController : Controller
{
private readonly ApplicationDbContext _context;
public ProjectsController(ApplicationDbContext context)
{
_context = context;
}
// GET: Projects
[Authorize(Roles = "Member")]
public async Task<IActionResult> Index()
{
return View(await _context.Projects.ToListAsync());
}
}
這是觀點:
@model IEnumerable< Project2.Models.Entities.ProjectRole>
@{
ViewData["Title"] = "Index";
}
<div class="text-center">
<a href="/"><button>Home</button></a> |
<a href="../People"><button>Manage People</button></a> |
<a href="../People/Report"><button>View People Report</button></a> |
<a href="../Projects"><button>Manage Projects</button></a> |
<a href="../Projects/Report"><button>View Project Report</button></a> |
<a href="../ProjectRoles"><button>Manage Project Role</button></a>
</div>
<p>
<a asp-action="Create">Create New</a>
</p>
<table class="table">
<thead>
<tr>
<th>
Person Name
</th>
<th>
Project Name
</th>
<th>
@Html.DisplayNameFor(model => model.HourlyRate)
</th>
<th>
@Html.DisplayNameFor(model => model.RoleId)
</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PersonId)
</td>
<td>
@Html.DisplayFor(modelItem => item.ProjectId)
</td>
<td>
@Html.DisplayFor(modelItem => item.HourlyRate)
</td>
<td>
@Html.DisplayFor(modelItem => item.RoleId)
</td>
<td>
<a asp-action="Edit" asp-route-id="@item.Id">Edit</a> |
<a asp-action="Details" asp-route-id="@item.Id">Details</a> |
<a asp-action="Delete" asp-route-id="@item.Id">Delete</a>
</td>
</tr>
}
</tbody>
</table>
我感謝提供的任何建議和幫助。謝謝!
uj5u.com熱心網友回復:
你不能在一個視圖中使用兩個模型,但你可以創建一個視圖模型類來包含它們你讀過這篇什么是 MVC 中的 ViewModel?
uj5u.com熱心網友回復:
創建一個包含其中兩個模型的類,稱為視圖模型,然后在視圖上傳遞視圖模型。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/346532.html
標籤:C# asp.net asp.net-mvc
