为什么我要求PackageId时会返回MemberId?

问题描述 投票:0回答:1

创建描述模型后:

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)实际上是已登录其Package和Description的用户的MemberID。

我的代码有何错误?

Related SQL database Tables

创建描述模型后:公共类DescriptionModel {[Key] public int DescriptionId {组; } public int PackageId {get;组; } [必需] [StringLength(...

sql ef-code-first ef-core-2.2
1个回答
0
投票

“ ViewBag.PackageId”是显而易见的答案,应该已引用MemberId。

© www.soinside.com 2019 - 2024. All rights reserved.