標籤:bar turn ajax 文檔 target keyword 相關 *** 12px
在使用@Html.DropDownList的過程中,發現它的用法很局限,比如在載入的時候顯示設定的預設項或者調整它的顯示樣式,在網上查了一些資料,終於把這個問題解決了。
一、View代碼
[html] view plain copy
- @using (Ajax.BeginForm("Edit", new AjaxOptions() { OnSuccess = "afterEdit" }))
- {
- @Html.HiddenFor(model => model.ID)
- @Html.HiddenFor(model => model.isUsed)
-
- <div style="padding: 40px 40px 30px 50px;">
- <table style="font-size:12px" align="center">
- <tr>
- <td>@Html.Label("評論人職務:")</td>
- <td>@Html.DropDownList("YzPositionCriticsID", ViewData["CriticsPositionType"] as SelectList)</td>
- </tr>
- <tr>
- <td>@Html.Label("被評論人職務:")</td>
- <td>@Html.DropDownList("YzPositionEvaluationID", ViewData["EvaluationPosition"] as SelectList)</td>
- </tr>
- <tr>
- <td>@Html.Label("權重:")</td>
- <td>@Html.TextBoxFor(model => model.Weight)</td>
- </tr>
- </table>
- </div>
-
- }
二、Controller代碼
[csharp] view plain copy
- public ActionResult Edit(string id)
- {
- //6.1根據ID從資料庫中查出要修改的相關資料
- Guid Gid = new Guid(id);
- Model.DTO.YzWeightEntityDTO weight = weightBLL.LoadEnities(u => u.ID == Gid).FirstOrDefault().ToDto();
-
- //6.2查詢YzPositionEntity實體的資料
- List<Model.DTO.YzPositionEntityDTO> positionList = positionBLL.LoadEnities().ToList().Select(s => s.ToDto()).ToList();
-
- //6.3將YzPositionEntity的資料封裝到 SelectList中,制定要產生下拉框選項的value和text屬性
- SelectList selList1 = new SelectList(positionList, "ID", "PositionType", weight.YzPositionCriticsID);
- SelectList selList2 = new SelectList(positionList, "ID", "PositionType",weight.YzPositionEvaluationID);
-
- //6.4把產生的集合放到ViewData中
- ViewData["CriticsPositionType"] = selList1;
- ViewData["EvaluationPosition"] = selList2;
- return View(weight);
- }
在這裡需要注意的是:SelectList selList1 = new SelectList(list,"","",***),這裡的***就是下拉框載入時候要顯示的預設值。
最後的顯示效果如下:
總結:
在MVC的學習過程中,總會時不時遇到一些小問題,需要轉個彎才能找到答案。在解決問題的過程中經驗真的很重要,它能告訴你一個問題的突破點在什麼地方;除此之外,熟練的使用API文檔也是解決問題的重要途徑;最後,真的發現解決問題是提高自己學習興趣的不接動力。
ASP.NET MVC 讓@Html.DropDownList顯示預設值