4

アップグレード後、一部のビューでこのエラーが発生します。

Value cannot be null. Parameter name: value

スタックトレース

[ArgumentNullException: Value cannot be null.
Parameter name: value]
   System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value) +51903
   System.Web.Mvc.<Validate>d__1.MoveNext() +135
   System.Web.Mvc.<Validate>d__5.MoveNext() +318
   System.Web.Mvc.DefaultModelBinder.OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) +139
   System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) +66
   System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +1367
   System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +449
   System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +317
   System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +117
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
   System.Web.Mvc.Controller.ExecuteCore() +116
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8920029
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

問題が発生する可能性があるという考えはありますか?

編集:問題が見つかりました、

[RequiredRequestedOnSiteDate]
[DisplayName("")]
public Date RequestedOnSiteDate { get; set; }

MVC2 ではこれが機能します。名前はヘッダーに表示されるため、このテキスト ボックスの表示名は必要ありません。エラーなしで表示名を持たないようにするにはどうすればよいですか? ありがとう

4

3 に答える 3

0

コードからを削除するだけで@Html.DisplayFor(m => m.RequestOnSiteDate)、名前が表示されなくなります。

于 2011-07-29T16:02:21.280 に答える
0

Anders、これは数年後のもので、MVC4 でまったく同じエラーが発生しています。

[DisplayName("")]
public NexEnum.Veteran Veteran { get; set; }

解決したことはありますか?私はこれで解決しました:

[DisplayName(" ")]
public NexEnum.Veteran Veteran { get; set; }
于 2015-06-29T18:45:40.180 に答える
0

ひょっとして…

モデルの DisplayName 属性で [Required] を使用するのではなく、セッター内に null 値で例外をスローするトラップがあり、バインダーはプロパティを null に設定しようとしています。

より良いアイデアを得ることができるように、モデル コード (およびおそらくコントローラー アクション メソッド) を提供してください。

于 2011-07-29T10:22:18.500 に答える