c# - 空引用异常和??运算符(operator)

标签 c# asp.net-mvc

我在Asp.Net MVC应用程序中有一个窗体,该窗体在下一行(但仅在回发错误之后)返回Null引用异常:

<%= Html.TextArea("Description", Model.Evt.Description ?? "")%>


字符串Description确实为空,但我的期望是,如果Model.evt.Descriptionnull,则TextArea中将显示“”。在最初加载表单时效果很好时,为什么要这样做呢?

唯一的区别是,从用于初始加载的新对象填充了ViewUserControl的类型,并在回发重新加载时填充了模型对象。

我想念什么?

堆栈跟踪如下:

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.Mvc.HtmlHelper.GetModelStateValue(String key, Type destinationType) +63
   System.Web.Mvc.Html.TextAreaExtensions.TextAreaHelper(HtmlHelper htmlHelper, String name, Boolean useViewData, String value, IDictionary`2 implicitAttributes, IDictionary`2 explicitParameters, IDictionary`2 htmlAttributes) +261
   System.Web.Mvc.Html.TextAreaExtensions.TextArea(HtmlHelper htmlHelper, String name, String value, IDictionary`2 htmlAttributes) +213
   System.Web.Mvc.Html.TextAreaExtensions.TextArea(HtmlHelper htmlHelper, String name, String value) +61
   ASP.views_events_eventform_ascx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in c:\Documents and Settings\Richard Box\My Documents\Visual Studio 2008\Projects\EventsManager\EventsManager\Views\Events\EventForm.ascx:64
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +256
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Control.Render(HtmlTextWriter writer) +10
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +134
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19
   System.Web.UI.Page.Render(HtmlTextWriter writer) +29
   System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer) +59
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +99
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

最佳答案

看起来Model或Evt为null,实际上不是Description字段。

关于c# - 空引用异常和??运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1267209/

相关文章:

.net - 列出 MVC 路由的工具 - Visual Studio Express

asp.net-mvc - 使用旧参数调用 Controller 操作

c# - 如果按钮在 1 秒内按下 X 次,执行此操作?

c# - 为什么我可以将无效值解析为 .NET 中的枚举?

c# - 使用母版页循环浏览页面上的控件

c# - 如何以 DateTime 格式显示双倍 (HH :mm:ss)?

c# - 将 C# 列表转换为 JSON 特定格式

javascript - 在数据库问题中保存模式消息

c# - 在 nLog 中禁用 .info 日志记录

c# - 排序/过滤属性在 Grid.Mvc 中不起作用