easp.netMVC nullReferenceException返回视图

问题描述 投票:0回答:3

当我坐下来工作时,这是在工作,只是辞职了。我一生都不能弄清楚。我遇到的错误是:

enter image description here

我可以启动该应用程序,但是一旦我导航到此页面,它就会在尝试显示视图时踢出错误。

这里是我的控制器

// GET: Form/Create public ActionResult Create() { List<METHOD> methods = new List<METHOD>(); List<NATION> nations = new List<NATION>(); List<LANGUAGE> languages = new List<LANGUAGE>(); List<string> headers = new List<string>(); List<string> footers = new List<string>(); List<string> cssFiles = new List<string>(); using(var context = new Entities(_connectionString)) { // Get a list of methods to choose from incase they want to change the method methods = context.METHODs.ToList(); // Get list of nations to choose from nations = context.NATIONs.OrderBy(x => x.NAME).ToList(); // Get list of languages languages = context.LANGUAGES.OrderBy(x => x.DESCRIPTION).ToList(); // Get list of headers that are used today (from the DB...not solution) headers = context.WEB_CONTACT_DETAILs.Select(x => x.HDR_LINK).Distinct().ToList(); headers.Sort(); // Get list of footers that are used today (from the DB...not solution) footers = context.WEB_CONTACT_DETAILs.Select(x => x.FTR_LINK).Distinct().ToList(); footers.Sort(); // Get list of headers that are used today (from the DB...not solution) cssFiles = context.WEB_CONTACT_DETAILs.Select(x => x.CSS_LINK).Distinct().ToList(); cssFiles.Sort(); } ViewData["methods"] = methods; ViewData["nations"] = nations; ViewData["languages"] = languages; ViewData["headers"] = headers; ViewData["footers"] = footers; ViewData["cssFiles"] = cssFiles; return View(); } 我已经从dbcontext正确加载了所有内容,并且列表objets正是我在返回视图之前的期望。

在这里是观点
@using Company.ContactFormAdmin.Web;
@using Company.ContactFormAdmin.Web.Models
@model FormViewModel
@{
    ViewBag.Title = "Edit";
    List<METHOD> methods = (List<METHOD>)ViewData["methods"];
    List<NATION> nations = (List<NATION>)ViewData["nations"];
    List<LANGUAGE> languages = (List<LANGUAGE>)ViewData["languages"];
    List<string> headers = (List<string>)ViewData["headers"];
    List<string> footers = (List<string>)ViewData["footers"];
    List<string> cssFiles = (List<string>)ViewData["cssFiles"]; //<--this is     where the exception is getting thrown.
}


<h2>New Contact Form</h2>
<div class="container"> //Truncated to keep it short...
我已经逐步介绍了上面的每个列表对象,并且每个列表对我从控制器传递的数据填充。我还尝试将它们全部设置为null,并且错误仍然被扔在同一位置。我还试图不从控制器中传递任何东西,但它仍然发生。

@{ ViewBag.Title = "Edit"; List<METHOD> methods = null;// (List<METHOD>)ViewData["methods"]; List<NATION> nations = null;// (List<NATION>)ViewData["nations"]; List<LANGUAGE> languages = null;// (List<LANGUAGE>)ViewData["languages"]; List<string> headers = null;// (List<string>)ViewData["headers"]; List<string> footers = null;// (List<string>)ViewData["footers"]; List<string> cssFiles = null;// (List<string>)ViewData["cssFiles"]; }

我还尝试清洁和重建无济于事。如果我删除了最后一行(“ CSSFILES”),则将错误丢弃在上一行(“页脚”)上。 Full堆栈跟踪

at ASP._Page_Views_Form_Create_cshtml.Execute() in c:\Projects\ConsumerServices\ContactFormAdmin\ContactFormAdmin_Soln-MVC-EB\ContactFormAdmin.Web\Views\Form\Create.cshtml:line 8 at System.Web.WebPages.WebPageBase.ExecutePageHierarchy() at System.Web.Mvc.WebViewPage.ExecutePageHierarchy() at System.Web.WebPages.StartPage.RunPage() at System.Web.WebPages.StartPage.ExecutePageHierarchy() at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage) at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance) at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer) at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult) at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList`1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)
任何人都知道我如何进一步解决问题或以前处理过?  

通过消除过程,我能够解决这个问题。我不知道

为什么突然变成了一个问题,但是实际上,错误是在不同的部分,较低的地方。

I使用传统的HTML

<input>标签,而不是ASP.NET的HTML助手。通过更换此:

<input class="form-control" id="WEB_PAGE_NAME" name="WEB_PAGE_NAME" value="@Model.WEB_PAGE_NAME">
this:

@Html.TextBoxFor(model => model.WEB_PAGE_NAME, new { @class = "form-control" })

c# asp.net asp.net-mvc entity-framework
3个回答
0
投票

看起来像您已经使它起作用了。仅供参考:必须使用ViewData对象才能在视图中使用它。如果是无效的,它将丢失错误。在使用它以查看之前,请检查它是否未null,然后将其如下使用。

不起作用!

 <div>ViewData["cssFiles"]</div>

Works!
@if (ViewData["cssFiles"] != null)
{
    <div>ViewData["cssFiles"]</div>
}

彩色预测服务器hack

*强调文本

0
投票

blockquote

list项目##标题##



0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.