당신이 당신의 masterpage에 데이터를 전달하려면, 나는 다음과 같은 제안 :
뷰 모델 기본 클래스를 작성, 예를 모든 페이지가 viewmodels를 만들 경우, masterpage의 1 행
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<ViewModelBase>" %>
예를 들어, 수정
public class ViewModelBase
{
public List<MenuItem> MenuItems { get; set; }
public string SomeRandomData { get; set; }
}
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)
{
// ...
}
}
Viewpage의 첫번째 행은
당신이 viewpage :)에서 masterpage 및 TestViewModel에서 ViewModelBase에 액세스 할 수 있습니다 지금
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<TestViewModel>" %>
추가
<add namespace="yourproject.Models"/>
에 web.config의 'namespaces'섹션을 추가하면 모든 뷰 페이지에 import 문을 입력 할 필요가 없습니다.
나는 두 번째 접근법을 좋아한다. –
거대한 사이트에서이 기술을 사용하는 것을 상상할 수 없습니다. –
거대한 사이트에서 이것을 사용하는 것을 상상할 수 없기 때문에이 답변을 투표 해 보셨습니까? –