【问题标题】:mvc display different table row in dropdownlistmvc 在下拉列表中显示不同的表格行
【发布时间】:2015-03-15 01:19:09
【问题描述】:

嘿,我首先使用实体​​框架和数据库。 例如,在我的数据库中,我有一个表 actor,其中包含主键“ActorID”、外键“agencyID”和属性“name”。 然后我有一个表 movie 与主键和外键“ActorID”和一些属性。 我用模型导入了数据库,然后我为控制器和视图搭建了脚手架。 不幸的是,现在当我尝试查看 Movie“创建”时,它会在 ActorID 字段上显示一个下拉列表,其中包含外键“agencyID”而不是“名称”或主键“ActorID”。

    public partial class Actor
{
    public Kino()
    {
        this.Movie= new HashSet<Movie>();
    }

    public long ActorID{ get; set; }
    public long AgencyID { get; set; }
    public String name { get; set; }
}

.

    public partial class Movie
{
    public long MovieID{ get; set; }
    public long ActorID{ get; set; }
    public String zyx { get; set; }
}

现在我想知道是否可以将显示的行更改为名称或主行? (无需去数据库更改他们的位置并重新支付一切)

@Html.DropDownList("ActorID", null, htmlAttributes: new { @class = "form-control" })

我已经在模型中更改了“agencyID”和“名称”的位置,但没有任何变化。

【问题讨论】:

  • 你能发布你的模型吗?
  • 我将模型添加到问题中
  • 我不确定您看似不匹配的脚手架发生了什么,但令我惊讶的是,任何脚手架都可以在您的模型上使用很少的标记。您的模型应该具有指定主键列和外键列的属性:对属性进行一些阅读:[Key] 和 [ForeignKey]。此外,在使用额外的元数据属性后,您可能会发现脚手架更加有效:[DisplayName]、[Column]、[MaxLength] 等。

标签: c# asp.net-mvc entity-framework visual-studio model-view-controller


【解决方案1】:

我自己找到了解决方案。 您只需修改脚手架控制器。

ViewBag.ActorID = new SelectList(db.Actors.ToList(), "ActorID", "AgencyID ");

ViewBag.ActorID = new SelectList(db.Actors.ToList(), "ActorID", "Name");

现在它将显示正确的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多