【发布时间】:2013-05-23 22:59:44
【问题描述】:
我正在使用 C# 和 SQL Server 2005 开发一个 ASP .Net MVC 3 应用程序。
我也在使用实体框架和代码优先方法。
我有一个包含 DropDownList 的视图“应用程序”。
DropDownList 从基础中的表 Genre 加载其项目。
我想显示一个值表,并使用模型中已定义的列表。
table 的值取决于 DropDownList 的值。 我总是这个错误:
对象引用未设置为对象的实例。
描述:执行过程中发生了未处理的异常 当前的网络请求。请查看堆栈跟踪以获取更多信息 有关错误的信息以及它在代码中的来源。
这是我观点的代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcApplication2.Models.FlowViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Application
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Application</h2>
<form id="form1" runat="server">
<h2><%= Html.Encode(ViewData["Message"]) %> </h2>
<div>
<%:Html.Label("Type :")%><%: Html.DropDownListFor(model => model.SelectedGenre, Model.GenreItems)%>
</div>
<table border = "transparent">
<tr>
<th>
</th>
</tr>
<% foreach (var item in Model.FaItems) { %>
<tr>
<td>
<%: Html.DisplayFor(modelItem => item.Nom_Famille) %>
</td>
</tr>
<% } %>
</table>
</form>
</asp:Content>
这是控制器:
[HttpGet]
public ActionResult Application(Genre genre)
{
var vv = new FlowViewModel();
vv.GenreItems = new SelectList(db.Genres.ToList(), "ID_G", "ID_G");
if (vv.SelectedGenre == "Famille")
{
vv.FaItems = db.Familles.ToList();
}
else if (vv.SelectedGenre == "Sous Famille")
{
vv.SFItems = db.Sous_Familles.ToList();
}
return View(vv);
}
最后这是模型“FlowViewModel”:
public class FlowViewModel
{
[Key]
public string IDv { get; set; }
public List<Famille> FaItems { get; set; }
public List<Sous_Famille> SFItems { get; set; }
[NotMapped]
public SelectList GenreItems { get; set; }
public string SelectedGenre { get; set; }
}
堆栈跟踪:
【问题讨论】:
-
你能给我们这个异常的堆栈跟踪吗?
-
确定!请检查我的编辑
-
这没有多大帮助,我想知道引发异常的确切行,即使堆栈跟踪图片包含它我仍然不知道在你粘贴的地方放置它代码。
-
啊,好吧,例外是在这一行:
标签: c# sql-server visual-studio-2010 asp.net-mvc-3 entity-framework