ASP. NET MVC Вспомогательные методы, выбрасывающие нулевое эталонное исключение - PullRequest
0 голосов
/ 27 марта 2020

Я работаю над проектом уже около 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 Ссылка на объект не установлен для экземпляра объекта.

Я не совсем понимаю, почему это так, потому что это поток, который я использовал с начала проекта, и он продолжается правильно работать в производстве. Только при локальной отладке это проблема

1 Ответ

0 голосов
/ 11 апреля 2020

У меня была та же проблема, и я исправил установку Visual Studio, и проблема исчезла.

...