2011-05-12 5 views
1

내가하고 싶은 것은 꽤 단순 해 보입니다. 그래서처럼보기에 내 @Page 지시문에서 페이지 제목을 지정하고 싶습니다 :.Net MVC3 컨트롤러에서 페이지에 대한 참조 얻기

<%@ Page Title="About This Site" ... %> 

을 그리고, 그것은에서 사용할 수 있도록 내가는을 ViewData에 해당 페이지의 제목을 좀하고 싶습니다 같은 마스터 페이지 :보기 자체

<head> 
    <title>The Awesome Site | <%=ViewData["Title"]%></title> 

또한 좋아 : 이미 페이지 제어 방법의 모든 사용자 정의 컨트롤러를 상속하고

<h1><%=ViewData["Title"]%></h1> 

. 그래서 내가 ViewData (또는 어쩌면 내가 ViewBag 사용)에 Page.Title 속성을 전송하기 위해 컨트롤러에서 할 수있는 일이 있기를 바라고 있습니다. 컨트롤러에서 페이지를 참조하는 경로를 찾을 수없는 것 같습니다.

이것이 가능합니까? 고려하고 싶은 다른 접근 방식이 있습니까?

답변

1

"일반적인 오류"에 대한 자세한 내용은이 방법을 참조하십시오.

Passing data to Master Page in ASP.NET MVC

당신은 컨트롤러에서 "페이지"에서 아무것도 참조하지 않아야합니다. 두 개는 완전히 별도로 설계되었습니다. 데이터를 패키징 한 다음보기로 보내야합니다. 다른 방법 (요청하는 것 이상)은 @ {

ViewBag.Title = "내보기 제목"을 사용하는 것입니다. } 그런 다음 마스터 페이지에서 원하는 값을 사용합니다.

+0

면도날 구문을 사용하면보기의 맨 위에 @ {ViewBag.Title ="whatever ";} 훨씬 작아서 더 쉽게 변경할 수 있습니다. –

+0

@OneCleverMonkey, 왜 호기심이 생깁니 까? unaccept? –

0

나는 당신이 Html.Title()을 찾고있을 것이라고 생각합니다. 보기에서

<title><%: Html.Title() %></title> 

이 의지 픽업 제목을 필요에 따라 마스터 페이지에 삽입 :

당신은 페이지의 어떤 부분이 쓸 수 있습니다.

+1

행운이 없습니다. " 'System.Web.Mvc.HtmlHelper '에 'Title'에 대한 정의가없고 'System.Web.Mvc.HtmlHelper '유형의 첫 번째 인수를 허용하는 확장 메서드 'Title'이 없습니다. using 지시문이나 어셈블리 참조가 누락 되었습니까?) " – OneCleverMonkey

관련 문제