我正在尝试为我的 Controller 中的下拉菜单设置选定值,并通过 ViewBag 将其传递到我的 View 。当我调试时,所有正确的值都被传递给 Controller 和 View ,但当它实际呈现在页面上时,未设置所选值。
查看
<tr class="form-group">
<th>
<label for="CompanyID" class="control-label col-md-9">Company</label>
</th>
<td>
@Html.DropDownList("CompanyID", (IEnumerable<SelectListItem>)ViewBag.CompanyID, "", new { @class = "required-validation" })
@Html.ValidationMessageFor(model => model.CompanyID)
</td>
Controller
public ActionResult Edit(int? id) {
if (id == null) {
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var sale = db.SalesOpportunities.Find(id);
if (sale == null) {
return HttpNotFound();
}
ViewBag.CompanyID = new SelectList(db.Companies, "CompanyID", "Name", sale.CompanyID);
var technicians = db.UserProfiles.Select(t => new {
ID = t.ID,
Name = t.FirstName + " " + t.LastName,
}).OrderBy(t => t.Name);
ViewBag.UserID = new SelectList(technicians, "ID", "Name", sale.UserID);
return View(sale);
}
最佳答案
您选择的ViewBag
中的字段名称和变量名称不能相同。将其从 ViewBag.CompanyID
更改为 ViewBag.CompanyChoices
之类的内容,它将起作用。
关于c# - ViewBag SelectList 中的选定值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25728436/