0

如果我的页面上有一个画廊,我已经为画廊编写了一个 .net 用户控件,它在我的 Web 应用程序中运行良好。问题是当我去验证我的页面时,使用 XHTML 1.0 Strict,我得到文档类型不允许元素“链接”。

我做了一些研究,这是因为我在用户控件中嵌入了一个样式表,并且是从母版页的正文中调用的,所以它没有验证。我可以将样式表移出用户控件并移到主文件中,但我不需要在每个页面上加载样式表。最好的方法是什么 - 我希望将样式表包含在用户控件中,以便“管理”简单。

任何建议都会很棒。还在想,我是否也需要从用户控件中删除 javascript?

这是有问题的用户控件

<%@ Control Language="C#" Debug="true" AutoEventWireup="true" CodeFile="Gallery.ascx.cs" Inherits="Gallery" %>

<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI.WebControls" TagPrefix="asp" %>

<link ID="FancyboxCSS" type="text/css" rel="stylesheet" href="" runat="server" />
<link ID="FancyboxButtonsCSS" type="text/css" rel="stylesheet" href="" runat="server" />

<script type="text/javascript">

$(document).ready(function () {
    $(".fancybox").fancybox({
        maxWidth: 800,
        maxHeight: 800,
        fitToView: true,
        aspectRatio: true,
        openEffect: 'fade',
        closeEffect: 'fade',
        nextEffect: 'fade',
        prevEffect: 'fade',

        helpers: {
            title: {
                type: 'outside'
            },
            overlay: {
                opacity: 0.8,
                css: {
                    'background-color': '#000'
                }
            },
            buttons: {}
        }
    });
});

<div id="gallery" runat="server">
//images here
</div>
4

2 回答 2

0

标记验证器以标记语言(例如 HTML 或 XML)处理文档,并且文档必须是完整的。例如,HTML 文档必须至少包含一个title元素。并且<%@不应包含类似的内容:它们不是 HTML 文档的一部分,而是生成 HTML 的软件的说明。

因此,如果您想验证,您需要提交一个完整的、生成的 HTML 文档。

于 2012-08-02T11:48:48.337 回答
0

在这里为将来寻找相同事物的其他人找到答案http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmllink(v=vs.80).aspx

// Define an HtmlLink control.
HtmlLink myHtmlLink = new HtmlLink();
myHtmlLink.Href = "~/StyleSheet.css";
myHtmlLink.Attributes.Add("rel", "stylesheet");
myHtmlLink.Attributes.Add("type", "text/css");

// Add the HtmlLink to the Head section of the page.
Page.Header.Controls.Add(myHtmlLink);
于 2012-08-02T13:41:04.763 回答