c# - ViewBag SelectList 中的选定值不起作用

标签 c# asp.net-mvc

我正在尝试为我的 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/

相关文章:

c# - 如何使用 asp.net MVC 通过模型属性显示 YouTube 链接?

asp.net-mvc - .NET MVC 从 ActionFilter 写入 Cookie

asp.net-mvc - 为 FileResult 设置 ETag - MVC 3

c# - 执行 Ajax 时出现 500 内部服务器错误

c# - 如何在 LINQ 语句中将 int 转换为 double

javascript - 在 Angular 服务中找不到方法

c# - 在 C# 中嵌套数组有更优雅的方法吗?

c# - 如何在同一个 ExecuteScalar() 命令中同时检查多个相等的记录

c# - 调用驻留在字典中的对象的方法?

c# - 数据源是无效类型。它必须是 IListSource、IEnumerable 或 IDataSource