Исправление System.NullReferenceException в App_Web _ *. Dll
У меня есть странная проблема.
Мое приложение MVC работает отлично, за исключением одной страницы просмотра.
В рассматриваемой странице просмотра (организация/редактирование) на каждый элемент кода на странице появляется "NullReferenceException". Является ли это Html.TextBoxFor() или HTML.AntiForgeryToken().
У меня есть моя модель, представление и контроллер, изложенные здесь по другому вопросу, который, как мне кажется, связан - https://stackoverflow.com/info/26475866/dropdownlistfor-null-reference-error
Как вы можете видеть ниже, моя модель имеет информацию внутри нее. Этот захват экрана был сделан в " Обратном виде (" Редактировать ", модель)" внутри контроллера.
Сведения об исключении
- Source = App_Web_zu4jlld0
- StackTrace = at ASP._Page_Views_Organization_Edit_vbhtml.Execute() in C:\Users\mtaylor\Projects\Check Im Here\mtaylor-branch\CheckImHere_v2\CheckImHereMVC\Views\Organization\Edit.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]()
Просмотр
@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
Одна вещь, которую я замечаю, заключается в том, что если я прокомментирую свое "textboxfor", моя ошибка будет возникать в "ValidationSummary()", если я прокомментирую мой "ValidationSummary()", то моя ошибка произойдет в "AntiForgeryToken" ().
Итак, кажется, что ошибка происходит только в последней возможной области кода.
Ответы
Ответ 1
Я нашел ответ на свою проблему здесь
Для тех, кто находит это:
Попробуйте прокомментировать следующую строку кода ПОСЛЕ ошибки.
@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
В приведенном выше случае я получаю ошибки на model.organizationSub.subTitle
. Если бы я прокомментировал эту строку, я бы получил ошибки в строке model.organizationSub.subName
. Затем я нашел упомянутую ссылку и прокомментировал строку ПОСЛЕ всех моих TextBoxFors. Это исправило мою проблему.
Из ссылки: "Несколько раз компилятор не мог указывать на точные строки с конкретными типами ошибок в представлении бритвы, может быть из-за того, что он не мог сохранить номер строки в трассировке стека или где-то. Я нашел этот случай с Null Reference Exception и когда null передается в Url.Content.
Таким образом, это помогает проверить следующий оператор С# в режиме бритвы, когда вы не получили никаких ошибок в строке, отображаемой трассировкой стека. "