当我坐下来工作时,这是在工作,只是辞职了。我一生都不能弄清楚。我遇到的错误是:
我可以启动该应用程序,但是一旦我导航到此页面,它就会在尝试显示视图时踢出错误。 这里是我的控制器 // 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" })
看起来像您已经使它起作用了。仅供参考:必须使用ViewData对象才能在视图中使用它。如果是无效的,它将丢失错误。在使用它以查看之前,请检查它是否未null,然后将其如下使用。
不起作用!
<div>ViewData["cssFiles"]</div>
Works!@if (ViewData["cssFiles"] != null)
{
<div>ViewData["cssFiles"]</div>
}
彩色预测服务器hack
*强调文本
blockquote
list项目##标题##