2016-10-29 9 views
0

asp.net 웹 페이지를 사용하여 단일 페이지에서 메타 태그를 사용하는 방법. 현재 여러 페이지에서 작동하는 기본 메타 태그가 포함 된 레이아웃 마스터 페이지를 사용하고 있지만 마스터 파일의 하위 페이지에 대한 메타 태그를 재정의하는 방법을 찾지 못하는 것 같습니다.asp.net 웹 페이지의 페이지에서 메타 태그를 사용하는 방법

하위 페이지에서 다음과 같지만 작동합니다.

@{ 
    Layout = "~/siteLayout.cshtml"; 
    Page.Title = "Meta Page"; 
    Page.MetaKeywords = "keyword1, keyword2, keyword3"; 
} 

누구든지 도와 주시거나 올바른 방향으로 나를 가르쳐 주실 수 있습니까? 이 같은 레이아웃 뭔가

답변

0

사용 : 컨트롤러, 레이아웃이나 뷰의

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>@ViewBag.Title</title> 
    <meta name="keywords" content="@ViewBag.Keywords"> 

그리고, 당신은 ViewBag.TitleViewBag.Keywords을 설정해야합니다. 다음은 위의 레이아웃을 사용하는보기에서 설정하는 방법의 예입니다.

@{ 
    Layout = "~/Views/Shared/_YourLayout.cshtml"; 
    ViewBag.Title = "My Page Title"; 
    ViewBag.Keywords = "keyword1, keyword2"; 
} 

ViewBag 속성을 사용하면 컨트롤러에서보기로 동적으로 값을 공유 할 수 있습니다. 내부적으로 ViewBag 속성은 이름/값 쌍으로 ViewData에 저장되며,보기에 사용할 임의의 내용을 저장할 수있는 사전과 같습니다.

+0

안녕하세요 @Rawson 설명 된대로 페이지에서 viewbag 속성을 사용할 때마다 런타임 오류가 발생합니다. 이것은 웹 페이지 또는 엄격하게 MVC에서 작동합니까? 이것이 오류의 원인인지 확실하지 않습니다. –

+0

ASP.NET MVC 프레임 워크에서 완전히 지원되는 Razor 구문입니다 (ASP.NET Web Forms 및 ASP.NET 웹 페이지에서는 작동하지 않습니다). Web Pages와 MVC 프레임 워크를 혼합하고 있다고 생각합니다. 제발,이 스레드를 먼저 읽어 : [링크] (http://stackoverflow.com/a/6198826/5495799). – Rawson