0

我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。
我也在使用实体框架和代码优先方法。
我创建了一个“DropDownList”来从我的基础表中加载数据。
但结果,这个 DropDownList 告诉我:'NameofApplication.Models.NameofTable'
我不知道为什么?
这是视图中 DropDownlist 的声明:

<%:Html.Label("Gamme :")%>
<%: Html.DropDownList("ID_Gamme", String.Empty) %>

这是 Profile_Ga 的控制器:

namespace MvcApplication2.Controllers
{ 
    public class ProfileGaController : Controller
    {
        private GammeContext db = new GammeContext();

        //
        // GET: /ProfileGa/

        public ViewResult Index(Profile_Ga profile_ga)
        {
            ViewBag.ID_Gamme = new SelectList(db.Profil_Gas, "ID_Gamme", profile_ga.ID_Gamme);
            return View(db.Profil_Gas.ToList());


        }

最后这是模型:

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

4

1 回答 1

1

您正在返回一个集合Profile_Ga,我认为您打算使用它

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

虽然这看起来根本不正确。在您的方法中,您这样做了

public ViewResult Index(Profile_Ga profile_ga)
{
    ViewBag.ID_Gamme = new SelectList(
        db.Profil_Gas, "ID_Gamme", profile_ga.ID_Gamme);
    // did you plan to return a single instance here
    // and use that as your model
    return View(single_instance_of_Profile_Ga );
}

那么您的视图将如下所示

// then you can declare the dropdown like this
<%: Html.DropDownListFor(m => m.ID_Gamme, (SelectList)ViewBag.ID_Gamme) %>

更新(来自评论)

Thx,“您想将您从数据库中获得的列表显示到您的视图中”--> 是的,这就是我想要的

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) %>

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

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

于 2013-05-07T08:35:14.233 回答