创建描述模型后:
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。
我的代码有什么错误?