【发布时间】:2016-10-30 08:40:11
【问题描述】:
我有Aircraft 和FleetItem 的模型:
Aircraft.cs:
public class Aircraft : IDbEntity
{
[Key]
public int Id { get; set; }
public string Type { get; set; }
public int? MaxAltitude { get; set; }
public int? MaxSpeed { get; set; }
public int? NOfFirstClassSeats { get; set; }
public int? NOfBusinessClassSeats { get; set; }
public int? NOfEconomyClassSeats { get; set; }
}
FleetItem.cs:
public class FleetItem : IDbEntity
{
[Key]
public int Id { get; set; }
public string RegNumber { get; set; }
public int AirplaneId { get; set; }
[ForeignKey("AirplaneId")]
public virtual Aircraft Airplane { get; set; }
}
所以,实际上 - FleetItem 包含 Aircraft 的外键和飞机的注册号(regnumber 是唯一的)。
查看我现在拥有的 Index.cshtml:
@model Core.Models.FleetItem
@{
ViewData["Title"] = $"Add new plane to fleet";
}
<h2>@ViewData["Title"]</h2>
<form method="post" asp-controller="Fleet" asp-action="Add" asp-antiforgery="true">
<!-- todo add plane select -->
<div class="form-group">
<label asp-for="RegNumber" class="control-label">Registration number:</label>
<input asp-for="RegNumber" class="form-control" type="text" />
<span asp-validation-for="RegNumber"></span>
</div>
<div class="form-group">
<input type="submit" value="Add" class="btn btn-default" />
</div>
</form>
我需要链接FleetItem 和Aircraft。
我找到的解决方案:选择所有飞机并将它们传递到视图中并使用<select> 输出。
当我有几架飞机时,此解决方案适用。但是,如果我有 1000 多架飞机呢?对于<select> 列表来说,它太大了。所以,我考虑任何返回飞机的搜索。会很棒的。但是,如何实现呢?我认为该解决方案存在于某处,但我找不到。
或者您能提出最佳解决方案吗?
【问题讨论】:
标签: c# asp.net-core model