Я работаю над проектом уже около 9 месяцев, используя. NET Framework ASP. NET MVC. У меня есть представление со многими формами, каждая со своей моделью. Я использую ViewModel, которая содержит все отдельные модели, которые я использую для форм. Я использую помощники Html для создания полей ввода, таких как TextBoxFor и TextAreaFor, в формах, как показано ниже.
@Html.TextAreaFor(d => d.Foo.Property, new { @class = "form-control" })
Это работает с момента запуска проекта много месяцев go и продолжает работать в производство, однако со вчерашнего дня при попытке запустить локально оно перестало работать. При загрузке страницы каждый из моих вспомогательных входов выдает исключение нулевой ссылки. Я пытался использовать более ранние версии проекта, и он выбрасывает то же исключение. Мне не удалось найти кого-либо с такой же проблемой в Интернете, и я не знаю, как это исправить. В данный момент я склоняюсь только к переустановке Visual Studio, которую я бы предпочел не делать.
РЕДАКТИРОВАТЬ: Чтобы точно выяснить, в чем моя проблема, я включил поток, который я использую ниже. Они из фиктивного проекта, который я создал, поэтому моя проблема не указана c для какого-либо проекта.
У меня есть класс, который я хотел бы ввести значения как часть формы.
public class Foo
{
public int TestProp1 { get; set; }
public string TestProp2 { get; set; }
}
У меня много форм на одной странице, поэтому я должен использовать ViewModel для хранения каждой из нескольких моделей.
public class IndexViewModel
{
public Foo Foo { get; set; }
public Bar Bar { get; set; }
}
Используя Html помощников, я создаю входные данные для привязки к модели при отправке формы .
@model TestMvc2.Models.IndexViewModel
@{
ViewBag.Title = "Home Page";
}
<div class="row">
@using (Html.BeginForm("PostForm", "Home", FormMethod.Post))
{
<div class="form-group">
@Html.Label("Foo Test Prop 1")
@Html.TextBoxFor(c => c.Foo.TestProp1)
</div>
<div class="form-group">
@Html.Label("Foo Test Prop 2")
@Html.TextBoxFor(c => c.Foo.TestProp2)
</div>
}
</div>
При загрузке страницы в расширении TextBoxFor выделяются следующие исключения:
Исключение: «Microsoft.CSharp.RuntimeBinder.RuntimeBinderException» в Microsoft.CSharp.dll
Исключение: «Microsoft.CSharp.RuntimeBinder.RuntimeBinderException» в Microsoft.CSharp.dll
Исключение: «System.NullReferenceException» в System.Web. Mvc .dll Ссылка на объект не установлен для экземпляра объекта.
Я не совсем понимаю, почему это так, потому что это поток, который я использовал с начала проекта, и он продолжается правильно работать в производстве. Только при локальной отладке это проблема