【发布时间】:2014-01-12 20:46:32
【问题描述】:
我在 MVC Html 视图中使用以下代码
@Html.DropDownListFor(m => m.Company,
new SelectList(ViewBag.Companies, "Key", "Value", Model.Company))
我的控制器是这样的:
[HttpGet]
public ActionResult Login()
{
ViewBag.Companies = (from a in _context.Companies
select new {Key = a.Id, Value = a.Name});
return View();
}
但显示如下错误:
对象引用未设置为对象的实例。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
异常详细信息:System.NullReferenceException:没有对象引用 设置为对象的实例。
来源错误:
第 30 行:第 31 行:第 32 行:
@Html.DropDownListFor(m => m.Company,第 33 行:新 SelectList(ViewBag.Companies, "Key", "Value", Model.Company)) 第 34 行:
此代码用于登录屏幕,其中包含公司的用户名、密码和下拉菜单。
【问题讨论】:
-
您认为
@model是什么?在您的控制器操作中,您需要将一个实例传递给View(),例如:return View(new YourModel());... -
但它适用于例如显示基于模型的文本框?只是没有下拉菜单?
-
它不起作用,因为您正在访问助手中的
Model.Company并且您的Model为空。写@Html.DropDownListFor(m => m.Company, new SelectList(ViewBag.Companies, "Key", "Value"))
标签: c# asp.net-mvc razor drop-down-menu