2010-01-05 26 views
6

Tôi có một trang đơn giản bên trong trang cái (tốt, trong bản gốc trong trang cái).trang chính tạo thẻ tiêu đề thứ hai

Trong chủ trên cùng, tôi có thẻ head với runat="server", với một số bit như tập lệnh, bảng định kiểu, v.v. và cũng là một trình giữ chỗ nội dung. Không có thẻ tiêu đề ở đây.

Trong trang sử dụng tổng thể này, nội dung cho trình giữ chỗ chứa các số <title>pagename</title> trong đó. Tôi thực sự phải đặt nó ở đó.

Thật không may khi trang được hiển thị, tôi nhận được tiêu đề của mình, tất cả đều tốt, nhưng cũng nhận được thẻ tiêu đề trống thứ hai - tôi cho là đã bị bán phá giá trong đó bởi .NET.

Có cách nào để dừng thẻ tiêu đề thứ hai này không?

Trả lời

16

Từ bộ nhớ, nhờ đặt runat = "server" trên <head> .Net tự động thêm <title> nếu chưa có.

Tôi nghĩ (chưa được thử nghiệm nó) là nếu trong masterpage của bạn, bạn làm

<head runat="server"> 
Blah 
<title runat="server" visible="false"></title> 
</head> 

thiết lập các thẻ Title rõ ràng trong Trưởng masterpage và thiết lập tầm nhìn đến công trình sai. Tôi nghĩ.

+0

xảo quyệt, không thử, mặc dù tôi nghi ngờ nó sẽ hoạt động. đã kết thúc thêm một contentplaceholder riêng biệt cho danh hiệu trong tổng thể đầu <placeholder đây ... hoạt động tốt nhờ anyhow – nat

+0

Tôi vừa mới có cùng một vấn đề và cố gắng sửa chữa này. Tôi có thể xác nhận rằng nó hoạt động. Làm tốt. – draconis

+0

Xóa runat = "server" khỏi thẻ ehad dường như cũng hoạt động. – Ondra

4

Bạn không phải chèn thủ công <title> vào đầu.
Chỉ cần đặt Page.Title = "title" theo mã hoặc <%@ Page Title="My Title" .. %> bằng cách đánh dấu. ASP.NET sẽ tìm ra phần còn lại và đặt tiêu đề phù hợp.

1

Tôi nghĩ rằng sử dụng:

Nếu bạn muốn thiết lập danh hiệu ở cấp độ trang

<%@ Master ... %> 
<html> 
<head runat="server"> 
    <title> 
    <asp:ContentPlaceHolder ID="titleContent" runat="server" /> 
    </title> 
</head> 

Hoặc,

Nếu bạn muốn thiết lập tiêu đề động ở mức Master Page.

<%@ Master ... %> 
<html> 
<head runat="server"> 
    <title> 
    <asp:Literal ID="litPageTitle" runat="server"></asp:Literal> 
    </title> 
</head> 

là cách tốt hơn để đảm bảo rằng thẻ tiêu đề thứ hai trống không được tạo.

Các vấn đề liên quan