【发布时间】:2011-11-11 00:19:15
【问题描述】:
我看到一个奇怪的异常,并且完全不知道如何解决这个问题。我确定我忽略了一些非常明显的东西。我有以下视图工作,但做了一些事情,现在无法弄清楚为什么它突然停止了。
// All in an Area
// Controller
public ViewResult Test()
{
return View();
}
[HttpPost]
public ViewResult Test(TestModel testModel)
{
// Do some work
// Redirect or
return View(testModel);
}
// Model
public class TestModel
{
[Required]
public string Name { get; set; }
}
// View
@model MyApp.Areas.Admin.Models.TestModel
@{
ViewBag.Title = "Create New User";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section HeadSection {
<link href="@Url.Content("~/Content/MvcMembership.css")" rel="stylesheet" type="text/css" />
}
<h2 class="someclass">Test Form</h2>
<div class="otherclass">
@using (Html.BeginForm("Test", "MyController"))
{
@Html.EditorForModel()
<input type="submit" value="Create" />
@Html.ValidationSummary(true)
}
</div>
我在实际代码或测试控制器/视图中的 HttpGet 上的 @Html.EditorForModel() 处收到以下异常。
System.NullReferenceException was unhandled by user code
Message=Object reference not set to an instance of an object.
Source=App_Web_field.master.5f132152.av8tutrk
StackTrace:
at ASP.views_inputbuilders_editortemplates_field_master.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in http://server/Views/InputBuilders/EditorTemplates/Field.Master:line 5
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.UI.Control.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
at System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer)
at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)
at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
任何想法都会很棒!!! -- 杰夫
[编辑]几个项目符号:
- 我有一个带有测试代码的工作解决方案/项目。主要区别在于项目规模。这是一个有很多区域、控制器、模型和视图的大项目。所以路由,引用等......是不同的。我什至已经通过并确认 Model 为空,并且通过很少的阅读我可以发现它似乎 EditorFor[Model] 使用反射来创建字段,所以它是别的东西。
- 我在搜索解决方案时在网上找到了一个工作示例:http://mvcmembership.codeplex.com/
【问题讨论】:
-
a: 你是否传入了一个非空的
TestModel作为模型? b: 它用的是什么编辑器?默认的?定制的?什么? -
非空和空。 TestModel 是模型。我正在使用VS2010。请参阅上面的问题编辑。
标签: c# asp.net asp.net-mvc-3 razor