0

C# と SQL Server 2005
を使用して ASP .Net MVC 3 アプリケーションを開発しています。Entity Framework と Code First Method も使用しています。
ベースのテーブルからデータをロードするために「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) %>

そのドロップダウンでどうするつもりですか --> アイテムを選択すると、、、ポップアップが表示されます。データの読み込みは常に false です。なぜ編集するのでしょうか

最初に質問しなかったため、質問を編集する必要があります。だから私の質問は、ポップアップには何がありますか、おそらく編集フォームですか? あなたはそれを説明しなければならないので、あなたは新しい質問をする必要があります.私は答えなければなりません.あなたはコメントで質問しなければなりません. とにかく新しい問題であり、質問は無料です;)

于 2013-05-07T08:35:14.233 に答える