0

ページにギャラリーがある場合、Webアプリケーションで非常にうまく機能するギャラリーの.netユーザーコントロールを作成しました。問題は、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 に答える