首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC3搭建不会在存在外键的视图中生成下拉列表

MVC3搭建不会在存在外键的视图中生成下拉列表
EN

Stack Overflow用户
提问于 2012-09-29 06:50:15
回答 1查看 1.3K关注 0票数 1

这快把我逼疯了,我研究了StackOverflow上的相关帖子。

基本上我有两个表,专辑和流派,前者有一个外键到流派。我已经在EF5中使用Model First对此进行了建模,并使用MS的T4生成器生成了上下文和类文件。因此,我的域类代码是:

代码语言:javascript
复制
{
using System;
using System.Collections.Generic;

public partial class Album
{
    public int Id { get; set; }
    public string Title { get; set; }
    public decimal Price { get; set; }
    public string AlbumArtUrl { get; set; }

    public int GenreId {get; set;}
    public virtual Genre Genre { get; set; }
}
}

您会注意到我添加了以下内容:

代码语言:javascript
复制
public int GenreId {get; set;}

根据指导,为了使脚手架能够在视图中创建下拉菜单并在控制器中创建"SelectList“代码。但事实并非如此!但是,它确实会在视图中创建:

代码语言:javascript
复制
     <div class="editor-label">
        @Html.LabelFor(model => model.GenreId)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.GenreId)
        @Html.ValidationMessageFor(model => model.GenreId)
    </div>

所以我真的很困惑。任何想法都将不胜感激。

谢谢,

边缘

附言:我正在运行VS2010 SP1与ASP.NET MVC3工具更新它似乎,因为我试图安装它,它说它已经安装。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-29 08:56:56

你..。啊!我已经让它与MS脚手架一起工作。现在我需要弄清楚是怎么回事了。我认为问题出在我使用Model First的事实上,我需要确保将额外的外键属性添加到模型中,而不只是添加到Domain Class代码中,它需要在EDMX中。但是,这会产生另一个问题,因为现在在SQL Server中创建了两个字段,一个来自导航属性,另一个来自该字段。我可能需要玩一下地图。这就做

生成的控制器代码:

代码语言:javascript
复制
    // GET: /Album/Create

    public ActionResult Create()
    {
        ViewBag.GenreId = new SelectList(db.Genre, "Id", "Name");
        return View();
    } 

关联视图代码:

代码语言:javascript
复制
    <div class="editor-label">
        @Html.LabelFor(model => model.GenreId, "Genre")
    </div>
    <div class="editor-field">
        @Html.DropDownList("GenreId", String.Empty)
        @Html.ValidationMessageFor(model => model.GenreId)
    </div>

这就是我想要的。显然,如果有人想对此发表评论,那就太好了,但它确实有效。

谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12648340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档