Почему я не могу присвоить значение объявленной директиве @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
}
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ставлю brekpoint в файле wcf-сервиса, после запуска отладки вылезает "no symbols have been loaded"Тот же проект на другом компьютере нормально отрабатывает...
В теле запроса имеется сериализованные json данные, как в asp core 2 описывается метод пост, чтобы эти данные вытянуть, нужно ли [FromBody] ?
У меня есть программа написанная на windows forms , которая при запуске грузит данные из *txt файла (объем файла постепенно увеличивается) и отображает...