マスターページと子ページを持つアプリケーションがあります。ローカルホスト(イントラネット)でアプリケーションが正常に動作しています。しかし、インターネット上のサーバーに置くとすぐに、メニューをクリックした後に以下のエラーが表示されます。
コンテンツコントロールを含むコンテンツページでは、コンテンツコントロールのみが直接許可されます。
子ページ全体でコンテンツタグの開始タグと終了タグをダブルとトリプルでチェックします。
それらを確認
私はまったく同じ問題を抱えていました。問題は私が持っていた いくつかのスペース 終了コンテンツタグの後:
</asp:Content>
すべてのスペース、最後の終了タグの後の改行を削除します。
私は同様の問題に直面していました。 「content」タグでコードを囲んでいますか?
<asp:Content>Add your HTML here</asp:Content>
セクションごとに個別のコンテンツタグがあります。ヘッダー宣言のヘッドコンテンツとボディ宣言のボディコンテンツ。
別の可能性は、行末です。 Unixスタイルの行末を強制するソース管理から古いバージョンのコードをコピーしました。チェックアウトではないため、行末をDOS/Windowsスタイルに自動的に変換しませんでした。ページが適切にレイアウトされていても、エラーメッセージは「コンテンツコントロールのみが直接許可されます...」エラーでした。 Windowsスタイルの改行がないため、ASPXパーサーが失敗したようです。
コードを行末に依存しないエディターに貼り付けて(行末がWindowsスタイルに正規化されるように)コードをクリップボードに再コピーし、Visual Studioに貼り付けることで修正できました。エラーなしで処理されました。
質問でTripati Subudhiが提示したケースでは、デプロイプロセスに関する何かが不注意にUnixスタイルに変換された行末を使用して、エラーを引き起こした可能性があります。
もう1つの考えられる問題はHTMLコメントです。これらはコンテンツコントロールを取り囲んでいました-ASP.NETはこれらを舞台裏でリテラルコントロールに変換すると信じています-したがって、エラーi
このエラーの別の潜在的な原因:間違ったケースのタグ。
<asp:content>...
を<asp:Content>...
に変更すると、私の場合の問題が修正されました。
障害が発生した理由は、デフォルト設定のVisual Studio 2012(および2013)の組み込みformat document関数でした。この設定は、[ツール]-> [オプション]-> [テキストエディター]-> [HTML(Webフォーム)]-> [書式設定]で変更できます。タグの大文字を「入力済み」に設定すると、スタジオはファイルを破棄しなくなります。
私にとって、AssemblyとPageディレクティブがコメントアウトされているのは好きではありませんでした。
<%--<%@ Assembly Name="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" %>--%>
<%--<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="MyClass.MyPage" MasterPageFile="~/_layouts/MyProject/MasterPages/MasterPage.master" %>-->
その後も有効なPageディレクティブがあり、System.Coreを何にも使用していませんでした。それらを削除しただけで、問題なくロードされました。
私にとっては、同じIDを持つ2つのコンテンツコントロールでした。ファイルはVisual Studioの外部で編集されていたため、重複IDの自動名前変更は発生しませんでした。この誤解を招くエラーは、最初と同じIDを持つ2番目のコンテンツコントロール内の最初の画像を強調表示していました。
その時点でVSが重複コントロールIDの名前を変更したため、ページ全体をコピーしてそれ自体に再投稿することで解決しました。
マスターページには、ファイルの先頭にtwo UTF-8 BOMが含まれていたため、<%@ Master %>
別のページのディレクティブ。それらをバックスペースすることで機能させることができました。
私の場合、AjaxControlToolkit.dllのアセンブリ参照を追加するのを忘れていました。
参照を追加すると、エラーが消えました。
見落としがちな愚かな構文エラーがありました。 MasterType
タグの最初に余分な<
がありました。私の人生では見えませんでした?????️。
<%@ Page Language="vb" AutoEventWireup="true" MasterPageFile="~/Site1.Master" CodeBehind="Default.aspx.vb" Inherits="SomeApp.Web._Default" %>
<<%@ MasterType VirtualPath="~/Site1.Master" %>
sharePointでは、pageLayoutが公開されていないために発生しました。