Почему я не могу присвоить значение объявленной директиве @model напрямую без использования хелперов, вот так
@model site.Models.PageNews
Controllers.NewsController dataControllerNews = new Controllers.NewsController();
Model.MenuNews = dataControllerNews.OneUpdateMenuNews(new Models.MenuPanelNews());
выдает ошибку
System.Web.Mvc.WebViewPage.Model.get returned null.
Или как то все таки можно.
Вы пытаетесь присвоить значение свойству объекта модели, который ещё не инициализирован. Естественно получаете исключение.
По хорошему, значение для Model
должно присваиваться в контроллере на сервере. После чего страница рендерится и отправляется в браузер.
То, что делаете Вы (создание контроллера и получение модели в представлении), как минимум нарушает принцип MVC. Каждый компонент этого паттерна должен заниматься своим делом.
А зачем вам проводить все эти операции прямо в модели?
Решение 1: Заполнить это свойство прямо в контроллере на этапе формирования модели.
Решение 2: Передавать объект в ViewBag или ViewData. И использовать его на странице
var menuNews = ViewBag.MenuNews as MenuPanelNews;
var menuNews = ViewData["MenuNews"] as MenuPanelNews;
Решение 3: Напишите метод, но не в контроллере, а в пространстве Helpers, учитесь разделять логику.
@model site.Models.PageNews
@{
var menuNews = site.Helpers.Class1.OneUpdateMenuNews(new Models.MenuPanelNews());
}
Где Class1
namespace site.Helpers
{
public static class Class1
{
public static MenuNews OneUpdateMenuNews(MenuPanelNews menuPanelNews)
{
//TODO
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Ставлю brekpoint в файле wcf-сервиса, после запуска отладки вылезает "no symbols have been loaded"Тот же проект на другом компьютере нормально отрабатывает...
В теле запроса имеется сериализованные json данные, как в asp core 2 описывается метод пост, чтобы эти данные вытянуть, нужно ли [FromBody] ?
У меня есть программа написанная на windows forms , которая при запуске грузит данные из *txt файла (объем файла постепенно увеличивается) и отображает...