2012-04-04 26 views
1

這是我的下拉列表:DROPDOWNLIST隨着數據實體框架

     <div class="editor-label"> 
    <p> 
     <%: Html.LabelFor(model => model.Gov) %> 
    </p> 
    </div> 
    <div class="editor-field"> 
    <p> 
     <%=Html.DropDownListFor(model => model.Gov, ViewBag.gov as SelectList)%> 
     <%: Html.ValidationMessageFor(model => model.Gov) %> 
    </p> 

,這是我的視圖控制器:

 public ActionResult TestR() 
    { 
     ViewBag.gov = new SelectList(entity.gouvernerat, "Idgov", "Nomg"); 
     return View(); 
    } 

隨着HttpPost:

[HttpPost] 
    public ActionResult TestR(LogModel.preRegister Model) 
    { 
     if (ModelState.IsValid) 
     { 
      if (LogModel.preRegister.Verifuser(Model.IDag)) 
      { 
       ModelState.AddModelError("", "Agence existe deja"); 
       return View(Model); 
      } 
      else 
      { 
       int ins = LogModel.preRegister.Register(Model); 
       if (ins > 0) 
       { 

        return View("Index"); 
       } 
       else return View(); 
      } 
     } 
     else 
     { 
      return View(); 
     } 

    } 

現在下拉列表中顯示我的我的數據庫中的Gov列表(這就是我想要的),但是當我創建時,我在我的DropdownLisrt中得到了這個錯誤

+0

http://stackoverflow.com/questions/1297399/populating-asp-net-mvc-dropdownlist – 2012-04-04 23:42:25

回答

2

這對於LINQ to SQL來說非常簡單。假設您有一個包含「Tunis」,「Ariana」等字符串的表Govs。然後,您可以創建你的選擇列表如下:

govs.Select(x => new SelectListItem { Text = x.Name, Value = x.Name }); 

當然,你甚至可以更加靈活和值分配給別的東西,像一個ID。

更新:更多的細節來回答問題的意見提出:

添加選擇列表項的視圖模型:

public IEnumerable<SelectListItem> GovItems { get; set; } 

然後,控制器,返回你的觀點之前:

// database code to get "Govs" table goes here.... 

var vm = new MyViewModel { 
    GovItems = govs.Select(x => new SelectListItem { Text = x.Name, Value = x.Name }); 
} 

然後在您的視圖:

@Html.DropDownListFor(x => x.Gov, Model.Govs) 

我希望這會有所幫助。如果你仍然困惑,我建議閱讀一些關於ASP.NET MVC的教程。我建議微軟官方之一:

http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part1-cs

+0

Whare我把它放在ModelClass或控制器 – Chlebta 2012-04-05 00:32:53

+0

我通常做一些事情,在控制器中,但是你可以將它放入視圖模型中。它肯定不屬於模型,因爲它是特定於演示文稿的。 – 2012-04-05 00:36:30

+0

如何把它放入控制器?我不能對不起,但我是初學者在ASP.net MVC這是我的第一個項目 – Chlebta 2012-04-05 00:46:45