Где разместить код главной страницы в приложении MVC?

StackOverflow https://stackoverflow.com/questions/60516

  •  09-06-2019
  •  | 
  •  

Вопрос

Я использую несколько (2 или 3) главных страниц в своем приложении ASP.NET MVC, и каждая из них должна отображать биты информации из базы данных.Например, список спонсоров, текущий статус финансирования и т. д.

Итак, мой вопрос заключался в том, куда мне поместить этот код вызова базы данных главной страницы?

Обычно они должны быть выделены в отдельный класс контроллера, верно?Но тогда это означало бы, что мне придется подключать их вручную (например,передача ViewDatas), поскольку это выходит за рамки обычной структуры маршрутизации, предоставляемой структурой MVC.

Есть ли способ сделать это чисто без подключения передачи ViewData/вызовов действий к главным страницам вручную или создания подклассов фреймворков?

Объем документации очень мал...и я очень новичок во всем этом, включая концепции самого MVC, поэтому, пожалуйста, поделитесь своими советами/методами по этому поводу.

Это было полезно?

Решение

Один из способов сделать это — поместить в представление главной страницы перехватчик для ViewData, а затем определить BaseController:Контроллер (или несколько базовых классов), где вы выполняете все необходимые вызовы БД.

То, что вы хотите сделать, это то же самое, что описано в этот статьи.

Надеюсь, это поможет!

С уважением

Другие советы

Отличный вопрос.У вас есть несколько вариантов.

  1. Вызовите jQuery на своей главной странице, чтобы получить необходимые данные от контроллера, а затем снова заполнить поля с помощью jQuery.
  2. Второй вариант — создать пользовательские элементы управления, которые самостоятельно обращаются к контроллеру для заполнения своей информации.

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

Если вы не возражаете против строго типизированных данных представления, вы можете поместить все данные главной страницы в общий базовый класс для viewData.Вы можете установить эти данные в конструкторе базового класса.Всем вашим представлениям, требующим дополнительных данных, потребуются строго типизированные данные представления, которые наследуются от этого базового класса.

Чтобы разрешить вызов View() в ваших контроллерах без каких-либо явных данных просмотра, вы можете переопределить View в своей ControllerBase:

protected override ViewResult View(string viewName, string masterName, object model)
{
    if (model == null)
    {
        model = new ViewDataBase();
    }
    return base.View(viewName, masterName, model);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top