Если вы хотите передать данные на свою главную страницу, я бы предложил следующее:
Создать базовый класс модели представления, например,
public class ViewModelBase
{
public List<MenuItem> MenuItems { get; set; }
public string SomeRandomData { get; set; }
}
изменить 1-ую строку главной страницы
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<ViewModelBase>" %>
Для каждой страницы создайте видовые модели, например,
public class TestViewModel : ViewModelBase
{
public string Message { get; set; }
}
Пример контроллера
public class TestController : Controller
{
public ActionResult Index()
{
TestViewModel model = new TestViewModel();
// passing selected menuitem as parameter
model.MenuItems = createMenuItems("test");
model.Message = "Hello World!";
return View(model);
}
private List<MenuItem> createMenuItems(string selected)
{
// ...
}
}
1-я строка просмотра
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TestViewModel>" %>
Теперь вы можете получить доступ к ViewModelBase с главной страницы и TestViewModel с viewpage:)
Добавить
<add namespace="yourproject.Models"/>
в раздел 'namespaces' в web.config, так что вам не нужно вводить оператор import на каждой странице просмотра.