ContentPlaceHolder에 제목을 추가하면 두 번째 빈 타이틀 태그가 추가됩니다

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

  •  21-08-2019
  •  | 
  •  

문제

내 마스터 페이지에는 헤드 태그에 Contentplaceholder가 있습니다.

내 페이지 제목이 현재 페이지의 기능을 나타내기를 원하고 사용자의 언어로 제목을 번역하기를 원하기 때문에 Page의 Head의 Contentplaceholder에 제목 태그를 추가했습니다. 이제 오프 코스가 유효하지 않은 두 번째 빈 타이틀 태그가 나타나는 것을 제외하고는 모든 유쾌하고 좋은 것입니다.

이것을 해결하는 방법이 있습니까?

도움이 되었습니까?

해결책

나는 같은 문제에 부딪쳤다 해결책을 찾았습니다 그것은 효과가있는 것 같습니다. 그것은 꽤 해킹되지만 동시에 아주 간단합니다. 헤드에 다른 제목 태그를 추가하고 runat = "Server"속성을 넣은 다음 가시성을 False로 설정하십시오.

<title visible="false" runat="server"><%-- hack to turn the auto title off --%></title>

다른 팁

에 따르면 W3C 사양:

모든 HTML 문서에는 헤드 섹션에 제목 요소가 있어야합니다.

따라서 ASP.NET 플랫폼은 표준을 준수하고 페이지에 빈 타이틀 태그를 추가하여 유효한 마크 업을 달성하는 데 도움이됩니다. 콘텐츠 자리 표시자를 통해 하나를 추가하려고하는 것을 알 수 없습니다.

Classic ASP.NET에서 귀하의 옵션은 다음과 같습니다.

  1. @Page 지시문 제목을 사용 하여이 태그의 내용을 설정하십시오.
  2. Page.title 속성을 사용하여 코드 뒤에있는 속성을 사용하여 프로그래밍 방식으로 값을 설정하십시오.

ASP.NET MVC를 사용하는 경우 기본 사이트 마스터 파일에는 다음 기본 텍스트가 있습니다.

<title><%= Html.Encode(ViewData["Title"]) %></title>

기본 컨트롤러는 다음과 같습니다.

ViewData["Title"] = "Home";

작업 결과 내에서 다시 페이지 제목에 대한 프로그래밍 방식으로 액세스 할 수 있습니다.

일반적으로 Page 특정 정적 스크립트 및 CSS 링크를 추가하기 위해 HeadContent Content 자리 표시자를 사용합니다.

@Page Directive에 페이지 제목을 설정하기위한 Title이라는 속성이 있습니다. 페이지 제어의 속성으로 액세스 할 수 있습니다.

콘텐츠 장소 홀더를 통해 태그 내에서 명시 적으로 선언 할 필요는 없습니다.

적어도 MasterPages를 사용하는 기본 ASP.NET 페이지 용입니다. ASP.NET MVC는 확실하지 않습니다.

MasterPages 태그에서 runat = "Server"속성을 지우십시오.

타이틀을 설정하는 가장 좋은 방법은 마크 업 선언에서 제목 attritube를 사용하는 것입니다.

<%@ Page Title="PAGE NAME HERE" Language="C#" MasterPageFile="~/Controls/MasterPage/MasterPage.master"
AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>

또는 page_load로 설정하십시오

Page.Title = "Your page title"

이것을 다소 희망합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top