36

マスター ページと子ページを持つアプリケーションがあります。私のアプリケーションは、ローカル ホスト (イントラネット上) で正常に動作しています。しかし、インターネット上のサーバーに置くとすぐに、メニューをクリックした後に以下に示すエラーが表示されます。

コンテンツ コントロールを含むコンテンツ ページで直接使用できるのは、コンテンツ コントロールだけです。

スクリーンショット

4

12 に答える 12

26

子ページ全体でコンテンツの開始タグと終了タグを 2 回、3 回チェックします。

彼らが

  • 存在している
  • 正しく綴られている
  • 身分証明書を持っている
  • runat="サーバー" がある
  • 正しい ContentPlaceHolderID を持っている
于 2013-02-14T05:57:03.037 に答える
11

まったく同じ問題がありました。問題は、コンテンツの終了タグの後にいくつかのスペースがあったことです:

</asp:Content>

最後の終了タグの後のすべてのスペースと改行を削除します。

于 2015-01-09T08:09:35.743 に答える
10

私は同様の問題に直面していました。コードを「コンテンツ」タグで囲んでいますか?

<asp:Content>Add your HTML here</asp:Content> 

また、セクションごとに個別のコンテンツ タグを用意します。ヘッダー宣言の head コンテンツと body 宣言の body コンテンツ。

于 2013-02-14T07:29:38.053 に答える
9

別の可能性は行末です。Unix スタイルの行末を強制する古いバージョンのコードをソース管理からコピーしました。これはチェックアウトではないため、行末を DOS/Windows スタイルに自動的に変換しませんでした。ページが適切にレイアウトされていても、エラー メッセージは「コンテンツ コントロールのみが直接許可されています ...」というエラーでした。Windows スタイルの改行がないために、ASPX パーサーが失敗したようです。

コードを行末に依存しないエディター (行末が Windows スタイルに正規化される原因) に貼り付け、クリップボードに再コピーして Visual Studio に貼り付けることで修正できました。その後、ページエラーなく処理されました。

質問で Tripati Subudhi が提示したケースでは、デプロイ プロセスに関する何かが誤って Unix スタイルに変換された行末を使用して、エラーが発生した可能性が十分にあります。

于 2013-06-04T21:30:43.683 に答える
6

もう 1 つの考えられる問題は HTML コメントです。これらはコンテンツ コントロールを囲んでいました。ASP.NET はこれらを舞台裏でリテラル コントロールに変換すると考えています。

于 2014-01-21T12:46:07.460 に答える
2

私にとっては、同じ ID を持つ 2 つのコンテンツ コントロールでした。ファイルは Visual Studio の外部で編集されていたため、重複した ID の自動名前変更は行われませんでした。この誤解を招くエラーは、最初と同じ ID を持つ 2 番目のコンテンツ コントロール内の最初の画像を強調表示していました。

その時点で VS が重複したコントロール ID の名前を変更したため、ページ全体をコピーしてそれ自体を再投稿すると解決しました。

于 2016-07-22T20:17:03.787 に答える
2

私にとっては、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 を何にも使用していませんでしたが。それらを削除しただけで、正常にロードされました。

于 2014-09-19T04:08:29.847 に答える
2

ドキュメントに印刷されていない文字がないか確認してください

私のマスターページには、別のページからディレクティブを貼り付けたため、ファイルの先頭に2 つのUTF-8 BOM が含まれていました。<%@ Master %>それらをバックスペースすることで機能させることができました。

于 2019-06-11T13:53:31.933 に答える