Я думаю, вам нужно go снова просмотреть учебники в документации. Не похоже, что вы действительно знаете, что делаете здесь. У вас есть поле с именем Input
, которое, похоже, извлекается со страницы Razor, но вы работаете здесь с контроллером MVC. Однако даже это не так, потому что вы обычно видите это как-то вроде:
[BindProperty]
public UserReport Input { get; set; }
На странице бритвы. Здесь это даже не свойство, поэтому, даже если бы это обычно делало что-то, оно не было бы как поле, независимо от того.
NullReferenceException
приходит, потому что вы ссылаетесь на это поле, но никогда не инициализируете его. Опять же, на странице Razor (и если бы это было свойство, а не поле), это было бы заполнено данными поста (через BindProperty
), но в контроллере это не работает.
В вашем действии контроллера у вас есть userReport
параметр, поэтому , что - это то, где данные поста будут go. Однако, поскольку все атрибуты asp-for
в вашем представлении ссылаются на Input.Something
, на самом деле ничто не будет связано с этим параметром. Похоже, что это тоже извлекается со страницы Razor, не считая, что это работает только на странице Razor.
Длинно и коротко, похоже, что вы просто скопировали код из других мест, фактически не понимая это или то, что он делает, и превратил его в контроллер и просмотр. Все это в корне сломано сверху вниз.