我为一个库编写了一个.net用户控件,如果我的页面上有一个库,那么它在我的Web应用程序中运行得很好。问题是当我去验证我的页面时,使用XHTML 1.0 Strict,我得到的文档类型不允许元素“链接”在这里。
我做了一些研究,因为我在usercontrol中嵌入了样式表,并且从主页的主体调用,因此它不会验证。我可以将样式表从用户控件中移出到主文件中,但我不需要在每个页面上加载样式表。这样做的最佳方法是什么 - 我希望在usercontrol中包含样式表,以便于“管理”。
任何建议都会很棒。还想一想,我是否还需要从用户控件中删除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>
答案 0 :(得分:0)
标记验证程序以标记语言(如HTML或XML)处理文档,并且文档必须完整。例如,HTML文档必须至少包含title
元素。不应包括<%@
之类的内容:它们不是HTML文档的一部分,而是指向生成HTML的软件的说明。
因此,如果您希望验证,则需要提交完整的生成的HTML文档。
答案 1 :(得分: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);