27

新しい ASP.NET Web アプリケーションを作成しましたが、デバッグ後にサーバー エラーが発生しました

ID が「WaitingPopup1」のコントロールには、ページに ScriptManager が必要です。ScriptManager は、それを必要とするすべてのコントロールの前に表示する必要があります。

私は ASP.NET を初めて使用するので、web.config のどこに ScriptManager をインストールすればよいですか?

4

11 に答える 11

64

ScriptManager、作成したページに追加する必要があるコントロールです。

このSample AJAX Applicationを見てください。

<body>
    <form runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
        ...
    </form>
</body>
于 2012-11-20T13:08:51.830 に答える
9

ページで Microsoft ajax を使用している場合は、マスター ページまたはそれを必要とするページにスクリプト マネージャー コントロールを追加する必要があります。ASP.NET Ajax スクリプト ライブラリとスクリプト ファイル、部分ページ レンダリング、Web およびアプリケーション サービス用のクライアント プロキシ クラス生成を管理します。

<asp:ScriptManager ID="ScriptManger1" runat="Server">
</asp:ScriptManager>

フル使用

<asp:ScriptManager
    AllowCustomErrorsRedirect="True|False"
    AsyncPostBackErrorMessage="string"
    AsyncPostBackTimeout="integer"
    AuthenticationService-Path="uri"
    EnablePageMethods="True|False"
    EnablePartialRendering="True|False"
    EnableScriptGlobalization="True|False"
    EnableScriptLocalization="True|False"
    EnableTheming="True|False"
    EnableViewState="True|False"
    ID="string"
    LoadScriptsBeforeUI="True|False"
    OnAsyncPostBackError="AsyncPostBackError event handler"
    OnDataBinding="DataBinding event handler"
    OnDisposed="Disposed event handler"
    OnInit="Init event handler"
    OnLoad="Load event handler"
    OnPreRender="PreRender event handler"
    OnResolveScriptReference="ResolveScriptReference event handler"
    OnUnload="Unload event handler"
    ProfileService-LoadProperties="string"
    ProfileService-Path="uri"
    RoleService-LoadRoles="True|False"
    RoleService-Path="uri"
    runat="server"
    ScriptMode="Auto|Inherit|Debug|Release"
    ScriptPath="string"
    SkinID="string"
    SupportsPartialRendering="True|False"
    Visible="True|False">
        <AuthenticationService
            Path="uri" />
        <ProfileService
            LoadProperties="string"
            Path="uri" />
        <RoleService
            LoadRoles="True|False"
            Path="uri" />
        <Scripts>
            <asp:ScriptReference
                Assembly="string"
                IgnoreScriptPath="True|False"
                Name="string"
                NotifyScriptLoaded="True|False"
                Path="string"
                ResourceUICultures="string"
                ScriptMode="Auto|Debug|Inherit|Release" />
        </Scripts>
        <Services>
            <asp:ServiceReference
                InlineScript="True|False"
                Path="string" />
        </Services>
</asp:ScriptManager>
于 2012-11-20T13:09:33.110 に答える
6

ページのタグのすぐ下にスクリプトマネージャータグを追加できます<Form>。ScriptManagerタグを配置する方法は次のとおりです。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

マスターページを使用している場合は、マスターページでスクリプトマネージャーを使用することをお勧めします。これにより、AJAXコントロールを含むすべてのページでスクリプトマネージャーを何度も作成する必要がなくなります。

于 2012-11-20T13:17:40.617 に答える
4

次のようにタグScriptManager内に配置するだけです:form

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager> 

ある場合はMaster Page、これをマスター ページ自体に配置します。

于 2012-11-20T13:08:54.670 に答える
2

スクリプト マネージャがこのような問題を引き起こす場合がよくあります。試してみる 最初に、Ajax コントロールが使用されているコンテンツの前に表示される適切なプレースホルダーまたは任意のプレースホルダーにスクリプト マネージャーを追加します。

  1. パネルを更新するだけでなく、AJAX コントロールを使用しているときに ScriptManager を追加する必要があります。 <asp:ScriptManager ID="ScriptManger1" runat="Server" />

  2. 最新の Ajax Control Toolkit (バージョン 4.0 または 4.5 についてはわかりません) を使用している場合は、デフォルトの Ajax 拡張機能の ScriptManager ではなく、特定の ToolkitScriptManager を使用する必要があります。

  3. ページ上で使用できる ScriptManager または ToolKitScriptManager は 1 つだけです。マスター ページに追加した場合は、Web ページに再度追加する必要はありません。

  4. ここに記載されている問題は、ContentPlaceHolder が原因である可能性があります。マスター ページにあるコンテンツ プレース ホルダーの数を確認してください。マスター ページに 2 つのコンテンツ プレースホルダー "Head" と "ContentPlaceHolder1" があり、ContentPlaceHolder1 がコンテンツ ページである場合の例を見てみましょう。以下のコードを確認してください。

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder id="MainContent" runat="server">
        <asp:ScriptManager ID="ScriptManger1" runat="Server" />
          <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    </ContentTemplate>
</asp:UpdatePanel>
        </asp:ContentPlaceHolder>
    </div>
    </form>
</body>
</html> 

私たちのほとんどは、Web ページでデフォルトで masterpage を選択すると、Web フォームの設計中に間違いを犯します。MasterPage と同じ数のプレースホルダーがあります。

<%@ Page Title="" Language="C#" MasterPageFile="~/Master Pages/Home.master" AutoEventWireup="true" CodeFile="frmCompanyLogin.aspx.cs" Inherits="Authentication_frmCompanyLogin" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>

ガイド構造である PlaceHolder を削除する必要はありませんが、ScriptManager (マスター ページ上) を追加した場所と同じ PlaceHolder に Web フォーム コンテンツを追加するか、コンテンツの前に表示される適切な Placeholder またはプレース ホルダーに Script Manager を追加する必要があります。 Ajax コントロールが使用されます。

于 2015-02-08T02:03:58.280 に答える
1

ASPX ページに ASP コントロールが必要なだけです。私は通常、タグのすぐ下、またはマスターの本文の最初のコンテンツ領域内に配置します(マスターページを使用している場合)

<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
        <div>
            [Content]
        </div>
    </form>
</body>
于 2012-11-20T13:10:08.160 に答える
1

ScriptManagerを使用してページに登録する Web コントロールです。

<asp:ScriptManager ID="ScriptManger1" runat="Server" />

フォームタグ内

于 2012-11-20T13:09:10.003 に答える
0

ASP.NET ページの form タグ内。

于 2012-11-20T13:08:47.490 に答える
0
  • headタグ付きrunat="server"
  • formタグの中にrunat="server"
  • ContentPanelsそれを必要とするコントロールを含むの前- を含む典型的なコントロールUpdatePanels:

<%=ページタイトル%>

</form>
 </body>
于 2015-10-15T14:08:45.597 に答える
0

スクリプト マネージャは、使用する前にページに配置する必要があります。これは、ページ自体に直接配置するか、使用している場合はマスター ページに配置します。

マークアップは次のようになります。

 <asp:ScriptManager ID="ScriptManager1" runat="server" LoadScriptsBeforeUI="true"
            EnablePartialRendering="true" />
于 2012-11-20T13:09:44.997 に答える