【问题标题】:Why is a MemberId get returned when I ask for PackageId?当我询问 PackageId 时,为什么会返回 MemberId?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 2011-01-07
      • 2021-01-17
      • 2014-06-22
      • 2015-08-06
      • 2019-09-03
      • 1970-01-01
      • 2021-08-24
      相关资源
      最近更新 更多