C# 在DropDownList ASP MVC 3和EF中从base加载数据时出错

C# 在DropDownList ASP MVC 3和EF中从base加载数据时出错,c#,asp.net,asp.net-mvc,asp.net-mvc-3,sql-server-2005,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Sql Server 2005,我正在使用C#和SQLServer2005开发一个ASP.NETMVC3应用程序。 我还使用实体框架和代码优先方法。 我已经创建了一个“DropDownList”,用于从我的基础表加载数据。 但结果,这个下拉列表显示:'NameofApplication.Models.NameofTable' 我不知道为什么 这是视图中DropDownlist的声明: <%:Html.Label("Gamme :")%> <%: Html.DropDownList("ID_Gamme", St

我正在使用C#和SQLServer2005开发一个ASP.NETMVC3应用程序。
我还使用实体框架和代码优先方法。
我已经创建了一个“DropDownList”,用于从我的基础表加载数据。
但结果,这个下拉列表显示:'NameofApplication.Models.NameofTable'
我不知道为什么
这是视图中DropDownlist的声明:

<%:Html.Label("Gamme :")%>
<%: Html.DropDownList("ID_Gamme", String.Empty) %>
最后,这是一个模型:

namespace MvcApplication2.Models
{
    public class Profile_Ga
    {
        [Required]
        [Key]
        [Display(Name = "ID Gamme:")]
        public string ID_Gamme { get; set; }

        [Required]
        [Display(Name = "Gamme Entrante:")]
        public string In_Ga { get; set; }

        [Required]
        [Display(Name = "Gamme Sortante:")]
        public string Out_Ga { get; set; }

        [Required]
        [Display(Name = "Gamme Suivante:")]
        public string Next_Gamme { get; set; }

        [Required]
        [Display(Name = "Etat:")]
        public string Etat { get; set; }
        }
}
PS:

基本表中的表名是Profile_Ga

您返回的是一组
Profile_Ga
,我想您是想使用它

<%: Html.DropDownList("ID_Gamme", 
    new SelectList(Model, "ID_Gamme", "ID_Gamme ")) %>
那么你的观点是这样的

// then you can declare the dropdown like this
<%: Html.DropDownListFor(m => m.ID_Gamme, (SelectList)ViewBag.ID_Gamme) %>
那么在你看来,你需要这样做

<%: Html.DropDownList("ID_Gamme", SelectList(Model) %>

当我选择一个选项时,您打算使用-->我想要的下拉列表吗 项目,,,将出现一个弹出窗口。数据加载总是错误的,,,为什么我 将编辑


您需要编辑您的问题,因为您最初没有问这个问题。所以我的问题是弹出窗口会有什么,也许是一个编辑表单?你需要问一个新问题,因为你必须解释它,我必须回答,你必须在评论中提问,这将是一个很长的聊天时间,所以我不喜欢这样。无论如何,这是一个新问题,问一个问题是免费的;)

谢谢,还有,,,我尝试了一下,但语句用红色下划线,错误是:System.Web.Mvc.HtmlHelper没有名为“DropDownListFor”的适用方法,但似乎有一个同名的扩展方法。无法动态调度扩展方法。考虑在不使用扩展方法语法的情况下强制转换动态参数或调用扩展方法。对,这是使用VIEWBACK的缺点。您需要将其转换为
选择列表
,查看我的更新答案。您的解决方案是正确的,但现在出现另一个错误lol,ID_Gamme以红色下划线,错误为:错误1“System.Collections.Generic.IEnumerable”不包含“ID_Gamme”的定义,并且找不到接受类型为“System.Collections.Generic.IEnumerable”的第一个参数的扩展方法“ID_Gamme”(是否缺少using指令或程序集引用?)请再读一遍我的答案,实际上那里有一个问题(在代码注释中)。如果要返回集合,则不能使用DropDownList for。使用我给出的第一个
Html.DropDownList(“ID\u game”,(SelectList)Model)
。但是你必须考虑你真正想要做什么。对不起,如果我打扰你的话,,,但是我真的被卡住了,我是ASP MVC的初学者。我按照您告诉我的方式更改,但出现了以下错误:传入字典的模型项的类型为“MVCAPApplication2.Models.Profile\u Ga”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[MVCAPApplication2.Models.Profile\u Ga]”的模型项。我试着说:但是什么都没有!!下面是你最后的评论,我的第一个答案是正确的。请试着这样做。所以您应该有
返回视图(db.Profil_Gas.ToList())在控制器方法中,以及视图中的
。请记住,您的模型是一组
Profile\u Ga
。非常感谢!!!它工作得很好!酷,最后,不客气:)
// then you can declare the dropdown like this
<%: Html.DropDownListFor(m => m.ID_Gamme, (SelectList)ViewBag.ID_Gamme) %>
public ViewResult Index(Profile_Ga profile_ga)
{
    // you need to decide if you want to use this
    // ViewBag.ID_Gamme = new SelectList(
    //     db.Profil_Gas, "ID_Gamme", profile_ga.ID_Gamme);
    // or this
    // return View(db.Profil_Gas.ToList());
    // but since it seems you are confuse to what you are doing
    // then I suggest you just do this
    // this will return a collection model to your view
    return View(db.Profil_Gas.ToList());
}
<%: Html.DropDownList("ID_Gamme", SelectList(Model) %>