【发布时间】:2019-11-16 01:06:44
【问题描述】:
创建描述模型后:
public class DescriptionModel
{
[Key]
public int DescriptionId { get; set; }
public int PackageId { get; set; }
[Required]
[StringLength(255)]
public string DescriptionFull { get; set; }
// Each description must be attached to 1 package
[ForeignKey("PackageId")]
public virtual PackageModel PackageModel { get; set; }
}
以及封装模型
public class PackageModel
{
[Key]
public int PackageId { get; set; }
[DisplayName("Package Name")]
[Required]
public string PName { get; set; }
[DisplayName("Location")]
[Required]
public string PLocation { get; set; }
[Required]
[DataType(DataType.Currency)]
[Column(TypeName = "money")]
public decimal Price { get; set; }
[DisplayName("Active")]
public bool IsActive { get; set; }
[ForeignKey("MemberId")]
public virtual AgentModel AgentModel { get; set; }
[Required]
public string MemberId { get; set; }
public virtual ICollection<DescriptionModel> Descriptions { get; set; }
[DisplayFormat(NullDisplayText = "Not reviewed")]
public virtual ICollection<ReviewModel> Reviews { get; set; }
}
然后我使用脚手架创建默认控制器和视图。在默认的“创建”视图中,当我尝试时,PackageId 将作为授权用户的 MemberID 出现。
@model final1.Models.DescriptionModel
...redacted create.cshtml...
div class="form-group">
<label asp-for="PackageId" class="control-label"></label>
<select asp-for="PackageId" class ="form-control" asp-items="ViewBag.PackageId"></select>
</div>
上面是导致标签实际显示“PackageId”的视图,但下拉列表 (ViewBag.PackageId) 实际上是登录用户的 MemberID,它是包和描述。
我的代码怎么错了?
【问题讨论】:
标签: sql ef-code-first ef-core-2.2