Système.NullReferenceException dans App Web *.DLL

j'ai un problème bizarre.

mon application MVC semble fonctionner parfaitement sauf pour une page de vue.

la page de vue en question (organisation/édition) obtient une 'NullReferenceException' sur chaque élément de code de la page. S'il s'agit de Html.TextBoxFor () or HTML.AntiForgeryToken () .

mon modèle, ma vue et mon contrôleur sont exposés ici sur une autre question je pense que c'est lié -- https://stackoverflow.com/questions/26475866/dropdownlistfor-null-reference-error

comme vous pouvez le voir ci-dessous, mon modèle contient des informations. Cette capture d'écran a été prise à l' " Return View("Modifier", modèle) " à l'intérieur du contrôleur.

Détails De L'Exception

- Source = App_Web_zu4jlld0
- StackTrace =    at ASP._Page_Views_Organization_Edit_vbhtml.Execute() in C:UsersmtaylorProjectsCheck Im Heremtaylor-branchCheckImHere_v2CheckImHereMVCViewsOrganizationEdit.vbhtml:line 16
   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.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)

enter image description here

Vue

@ModelType CheckImHereMVC.OrganizationEditViewModel

@Using Html.BeginForm("Edit", "Organization", FormMethod.Post)
 @Html.AntiForgeryToken() 'get errors here
 @Html.ValidationSummary(True) 'get errors here
 @Html.TextBoxFor(Function(model) model.organizationSub.subName, New With {.class = "span12"}) 'and errors here
End Using

une chose que je remarque est que si je commente mon 'textboxfor', mon erreur se produira au 'ValidationSummary()', si je commente mon 'ValidationSummary()', alors mon erreur se produira au 'AntiForgeryToken()'.

il semble Donc que l'erreur arrive juste à la dernière zone de code.

23
demandé sur Community 2014-10-21 20:04:19

1 réponses

j'ai trouvé la réponse à mon problème ici

Pour quiconque de trouver ceci:

essayez de commenter la ligne de code suivante après l'erreur.

@ModelType CheckImHereMVC.OrganizationEditViewModel

@Using Html.BeginForm("Edit", "Organization", FormMethod.Post)
   @Html.AntiForgeryToken() 
   @Html.ValidationSummary(True) 
   @Html.TextBoxFor(Function(model) model.organizationSub.subName, New With {.class = "span12"})
   @Html.TextBoxFor(Function(model) model.organizationSub.subTitle, New With {.class = "span12"})
   <img src="@Url.Content(Model.img.imgPath)" alt="IMAGES"/> 'commenting out this line fixed my issue
End Using

dans le cas ci-dessus, j'obtiendrais des erreurs sur le model.organizationSub.subTitle . Si je commente cette ligne, j'obtiens des erreurs sur la ligne model.organizationSub.subName . J'ai alors trouvé le lien mentionné et commenté la ligne après tout mon TextBoxFors. Qui a résolu mon problème.

de link: "parfois compilateur ne pouvait pas pointer sur les lignes exactes ayant le type spécifique d'erreurs dans la vue de rasoir peut être parce qu'il ne pouvait pas garder leur numéro de ligne dans la pile de trace ou quelque part. J'ai trouvé ce cas avec L'Exception de référence nulle et quand null est passé dans L'Url.Contenu.

ainsi il aide à vérifier la prochaine déclaration C# dans la vue de rasoir quand vous n'avez pas obtenu d'erreur sur la ligne montrée par la trace de pile."

34
répondu MaylorTaylor 2017-05-23 12:10:54