Asp.net 对象引用未设置为对象的实例(下拉列表)

Asp.net 对象引用未设置为对象的实例(下拉列表),asp.net,linq,entity-framework,asp.net-mvc-4,nullreferenceexception,Asp.net,Linq,Entity Framework,Asp.net Mvc 4,Nullreferenceexception,我刚开始学习,这里有一些问题困扰了我一整天。我无法解决以下错误: [NullReferenceException: Object reference not set to an instance of an object.] 我有以下代码: <div class="editor-field"> @Html.DropDownListFor(model => model.DogColors.ColorId, Model.Color, new { @id = "color_id"

我刚开始学习,这里有一些问题困扰了我一整天。我无法解决以下错误:

[NullReferenceException: Object reference not set to an instance of an object.]
我有以下代码:

<div class="editor-field">
@Html.DropDownListFor(model => model.DogColors.ColorId, Model.Color, new { @id = "color_id" })
@Html.ValidationMessageFor(model => model.DogColors.ColorId)
</div>
我在数据库中添加了两种颜色,这些颜色显示在下拉列表中。当我单击按钮提交时,此行出现问题:

@Html.DropDownListFor(model => model.DogColors.ColorId, Model.Colors, new { @id = "color_id" })
这个异常经常在那个地方抛出。你知道有什么问题吗

堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
ASP._Page_Views_Projects__CreateOrEdit_cshtml.Execute() in c:\Users\Admin\Documents\Visual Studio 2012\Projects\Pro\Pro.Web\Views\Dogs\_CreateOrEdit.cshtml:65
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +97
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +88
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +260
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115
System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection) +276
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +108
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model) +32
ASP._Page_Views_Projects_Create_cshtml.Execute() in c:\Users\Admin\Documents\Visual Studio 2012\Projects\Pro\Pro.Web\Views\Dogs\Create.cshtml:14
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +97
System.Web.WebPages.StartPage.RunPage() +17
System.Web.WebPages.StartPage.ExecutePageHierarchy() +62
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +260
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +295
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +242
System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +21
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +177
System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +89
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +102
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +43
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +14
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +57
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +47
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +25
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +47
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9629296
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
[NullReferenceException:对象引用未设置为对象的实例。]
c:\Users\Admin\Documents\Visual Studio 2012\Projects\Pro\Pro.Web\Views\Dogs\中的ASP
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()+197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy()+97
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext-pageContext,TextWriter-writer,WebPageRenderingBase-startPage)+88
System.Web.Mvc.RazorView.RenderView(ViewContext、TextWriter、Object实例)+260
System.Web.Mvc.buildmanager compiledview.Render(ViewContext、TextWriter)+115
System.Web.Mvc.HtmlHelper.RenderPartialInternal(字符串partialViewName、ViewDataDictionary viewData、对象模型、TextWriter编写器、ViewEngineCollection ViewEngineCollection)+276
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper HtmlHelper,字符串partialViewName,对象模型,ViewDataDictionary viewData)+108
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper-HtmlHelper,字符串partialViewName,对象模型)+32
ASP.\u页面\u视图\u项目\u创建\u cshtml.Execute()在c:\Users\Admin\Documents\Visual Studio 2012\Projects\Pro\Pro.Web\Views\Dogs\Create.cshtml:14中
System.Web.WebPages.WebPageBase.ExecutePageHierarchy()+197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy()+97
System.Web.WebPages.StartPage.RunPage()+17
System.Web.WebPages.StartPage.ExecutePageHierarchy()+62
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext-pageContext、TextWriter-writer、WebPageRenderingBase-startPage)+76
System.Web.Mvc.RazorView.RenderView(ViewContext、TextWriter、Object实例)+260
System.Web.Mvc.buildmanager compiledview.Render(ViewContext、TextWriter)+115
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext上下文)+295
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext ControllerContext,ActionResult ActionResult)+13
System.Web.Mvc.c__显示Class1A.b_17()+23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter筛选器,ResultExecutingContext预文本,Func`1 continuation)+242
System.Web.Mvc.c__显示Class1C.b__19()+21
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext ControllerContext,IList`1过滤器,ActionResult ActionResult)+177
System.Web.Mvc.Async.c__DisplayClass2a.b__20()+89
System.Web.Mvc.Async.c__显示类25.b__22(IAsyncResult asyncResult)+102
System.Web.Mvc.Async.WrappedAsyncResult`1.End()+57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)+43
System.Web.Mvc.c__;u displayClassId.b__u18(IAsyncResult asyncResult)+14
System.Web.Mvc.Async.c__显示类4.b__3(IAsyncResult ar)+23
System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+57
System.Web.Mvc.Async.c__显示类4.b__3(IAsyncResult ar)+23
System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)+47
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)+10
System.Web.Mvc.c__;u DisplayClass8.b__;u 3(IAsyncResult asyncResult)+25
System.Web.Mvc.Async.c__显示类4.b__3(IAsyncResult ar)+23
System.Web.Mvc.Async.WrappedAsyncResult`1.End()+62
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+47
System.Web.Mvc.MvcHandler.System.Web.IHTTPassynchandler.EndProcessRequest(IAsyncResult结果)+9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+96296
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+155

假设您有一个单独的create Post版本,提交视图时,您可能会返回模型,而无需重新填充模型中的“颜色”项:

[HttpPost]
public ActionResult Create(CreateDog model) {
    if (ModelState.IsValid) {
        // do something
    }

    return View(model); // Colors is null at this point, because
                        // It does not get posted.  You have to repopulate it.
}

过账仅过账选定值,不过账下拉列表的内容。因此,重新渲染视图后,它将尝试从空集合引用进行渲染。

几乎所有
NullReferenceException
的情况都是相同的。请参阅“”,以获得一些提示。如果您想获得帮助,请发布完整的异常堆栈跟踪。您是否有单独的发布和获取创建版本?@JohnSaunders-我编辑了这个问题。而且,CreateOrEdit.cshtml的第65行在哪里?它可以工作。非常感谢。我错过了我需要在后期版本中再次这样做。
[NullReferenceException: Object reference not set to an instance of an object.]
ASP._Page_Views_Projects__CreateOrEdit_cshtml.Execute() in c:\Users\Admin\Documents\Visual Studio 2012\Projects\Pro\Pro.Web\Views\Dogs\_CreateOrEdit.cshtml:65
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +97
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +88
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +260
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115
System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection) +276
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData) +108
System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model) +32
ASP._Page_Views_Projects_Create_cshtml.Execute() in c:\Users\Admin\Documents\Visual Studio 2012\Projects\Pro\Pro.Web\Views\Dogs\Create.cshtml:14
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +97
System.Web.WebPages.StartPage.RunPage() +17
System.Web.WebPages.StartPage.ExecutePageHierarchy() +62
System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) +76
System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) +260
System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) +115
System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) +295
System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +13
System.Web.Mvc.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17() +23
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +242
System.Web.Mvc.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19() +21
System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +177
System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +89
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +102
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +57
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +43
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +14
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +57
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +47
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +25
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +23
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +47
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9629296
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
[HttpPost]
public ActionResult Create(CreateDog model) {
    if (ModelState.IsValid) {
        // do something
    }

    return View(model); // Colors is null at this point, because
                        // It does not get posted.  You have to repopulate it.
}