2013-07-23 24 views
2

我正在使用MVC4,DropdownList沒有綁定SelectedValue。請在下面找到我的代碼,我不明白它出錯的地方。@ Html.DropDownList沒有綁定selectedValue編輯

我見過的SelectList,它的SelectedValue但鑑於DROPDOWNLIST沒有約束力它

控制器代碼

public ActionResult Edit(int id) 
     { 
      Employee model = _unitOfWork.EmployeeRepository.Find(id); 
      ViewBag.OfficeSiteId = new SelectList(_unitOfWork.OfficeSiteRepository.Get(), "Id", "Name", model.OfficeSiteId); 
return View("Edit", model); 
} 

查看

<div class="control-group"> 
       @Html.LabelFor(model => model.OfficeSiteId, new {@class = "control-label"}) 

       <div class="controls"> 
        @Html.DropDownList("OfficeSiteId", ViewBag.OfficeSiteId as SelectList, new {@class = "chzn-select"}) 
        @Html.ValidationMessageFor(model => model.OfficeSiteId, null, new {@class = "help-inline"}) 
       </div> 
      </div> 

回答

0

寫:

@Html.DropDownListFor(model => model.OfficeSiteId, 
    ViewBag.OfficeSiteId as SelectList, new {@class = "chzn-select"}) 

代替:

@Html.DropDownList("OfficeSiteId", 
    ViewBag.OfficeSiteId as SelectList, new {@class = "chzn-select"}) 

寫:

ViewBag.OfficeSiteId = new SelectList(
    _unitOfWork.OfficeSiteRepository.Get(), "Id", "Name"); 

代替:

ViewBag.OfficeSiteId = new SelectList(
    _unitOfWork.OfficeSiteRepository.Get(), "Id", "Name", model.OfficeSiteId); 
+0

我們同時使用DropDownList a nd DropDownListFor,我想使用DropDownList,如果我傳遞ViewBag.OfficeSiteId =新的SelectList(_unitOfWork.OfficeSiteRepository.Get(),「Id」,「Name」);沒有任何將從我的編輯模型中選擇動作 –

0

你的訴權n方法是可以的。只要改變你的觀點類似如下:

<div class="control-group"> 
    @Html.LabelFor(model => model.OfficeSiteId, new {@class = "control-label"}) 

    <div class="controls"> 
      @Html.DropDownList("OfficeSiteId", String.Empty) 

      @Html.ValidationMessageFor(model => model.OfficeSiteId) 
    </div> 
</div> 

,如果你需要設置class屬性,使用以下命令:

@Html.DropDownListFor(model => model.OfficeSiteId, 
    new SelectList(new PtDbContext().OfficeSites, "ID", "Name"), 
    htmlAttributes: new { class = "yourClass" }) 

,或者如果您通過ViewBag發送的SelectList:

@Html.DropDownListFor(model => model.OfficeSiteId, 
    (SelectList)ViewBag.OfficeSiteId, 
    htmlAttributes: new { class = "yourClass" }) 
+1

@ Html.DropDownList(「OfficeSiteId」,String.Empty,new {class =「chzn-select」})這是錯誤的,編譯錯誤,如果我寫@ Html.DropDownList(「 OfficeSiteId「,ViewBag.OfficeSiteId作爲SelectList,String.Emp喜歡這個,沒有選擇dropdlown,我需要選擇model.OfficeSiteid值 –

+0

對不起,你是對的我已經編輯了我的答案代碼...這將工作 – AminSaghi

+0

,但我怎麼能通過類名新{@class =「chzn-select」} –

1

@ Html.DropDownList(「OfficeSiteId」,null,new {@class =「chzn-select」})