c# - MVC 下拉列表未使用 ViewBag 显示所选值
问题描述
我已经使用 Banks 表填充了 ViewBag.BankNames
ViewBag.BankNames = new SelectList(db.Banks, "BankId", "BankName", applicationSettings.BankId);
其中 applicationSettings.BankdId 具有我需要在下拉列表中显示为选定值的值,然后将 applicationSetting 模型对象传递给查看。
在我的视图中,我使用了 ViewBag 之类的
@Html.DropDownListFor(model => model.BankId, ViewBag.BankNames as SelectList, "Select Bank", htmlAttributes: new { @class = "form-control" })
它将向我显示包含银行名称的所有值的下拉列表,但选定的值是Select Bank而不是我在 ViewBag 中设置为选定值的值?
解决方案
您可以将 applicationSettings.BankId 分配给模型属性的 BankId 并检查..
您正在绑定 @Html.DropDownListFor(model => model.BankId, ViewBag.BankNames as SelectList, "Select Bank", htmlAttributes: new { @class = "form-control" }) 但在 model.BankId 中为零..
在返回查看之前分配 Model.BankId = applicationSettings.BankId
In Controller
public ActionResult Index()
{
var banks = new List<Banks>()
{
new Banks()
{
BankId =1,
BankName = "Bank 1"
},
new Banks()
{
BankId =2,
BankName = "Bank 2"
}
};
var list = new SelectList(banks, "BankId", "BankName");
ViewBag.Banks = list;
var modelBanks= new Banks();
modelBanks.BankId = 2;
return View(modelBanks);
}
In View
@model Banks
@using WebApplication3.Models
@Html.DropDownListFor(model => model.BankId, ViewBag.Banks as SelectList,"Select Bank")
推荐阅读
- javascript - p5.js中带有矩形的网格中的意外边框模式
- java - 如何将经过验证的用户输入传递给方法参数?
- mysql - mysql sub select很慢
- xamarin.android - xamarin.android 中资源目录的路径
- javascript - 在 React redux 对象的状态数组中,我无法更新它创建的状态错误在调度之间检测到状态突变
- azure - 如果未发送客户端,如何在 APIM 入站策略中获取/设置 Traceparent 标头?
- mysql - 错误代码:1815。内部错误:无法重置表中的 LSN:数据结构损坏
- java - 线程“主”org.openqa.selenium.WebDriverException 中的异常:等待驱动程序服务器启动超时
- reactjs - 如何在反应 direflow 应用程序中导入本地字体(woff)
- sql - 有没有办法缩短以下代码?