新しい ASP.NET Web アプリケーションを作成しましたが、デバッグ後にサーバー エラーが発生しました
ID が「WaitingPopup1」のコントロールには、ページに ScriptManager が必要です。ScriptManager は、それを必要とするすべてのコントロールの前に表示する必要があります。
私は ASP.NET を初めて使用するので、web.config のどこに ScriptManager をインストールすればよいですか?
はScriptManager
、作成したページに追加する必要があるコントロールです。
このSample AJAX Applicationを見てください。
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
...
</form>
</body>
ページで 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>
ページのタグのすぐ下にスクリプトマネージャータグを追加できます<Form>
。ScriptManagerタグを配置する方法は次のとおりです。
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
マスターページを使用している場合は、マスターページでスクリプトマネージャーを使用することをお勧めします。これにより、AJAXコントロールを含むすべてのページでスクリプトマネージャーを何度も作成する必要がなくなります。
次のようにタグScriptManager
内に配置するだけです:form
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
ある場合はMaster Page
、これをマスター ページ自体に配置します。
スクリプト マネージャがこのような問題を引き起こす場合がよくあります。試してみる 最初に、Ajax コントロールが使用されているコンテンツの前に表示される適切なプレースホルダーまたは任意のプレースホルダーにスクリプト マネージャーを追加します。
パネルを更新するだけでなく、AJAX コントロールを使用しているときに ScriptManager を追加する必要があります。
<asp:ScriptManager ID="ScriptManger1" runat="Server" />
最新の Ajax Control Toolkit (バージョン 4.0 または 4.5 についてはわかりません) を使用している場合は、デフォルトの Ajax 拡張機能の ScriptManager ではなく、特定の ToolkitScriptManager を使用する必要があります。
ページ上で使用できる ScriptManager または ToolKitScriptManager は 1 つだけです。マスター ページに追加した場合は、Web ページに再度追加する必要はありません。
ここに記載されている問題は、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 コントロールが使用されます。
ASPX ページに ASP コントロールが必要なだけです。私は通常、タグのすぐ下、またはマスターの本文の最初のコンテンツ領域内に配置します(マスターページを使用している場合)
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="scriptManager" runat="server"></asp:ScriptManager>
<div>
[Content]
</div>
</form>
</body>
ScriptManager
を使用してページに登録する Web コントロールです。
<asp:ScriptManager ID="ScriptManger1" runat="Server" />
フォームタグ内
ASP.NET ページの form タグ内。
head
タグ付きrunat="server"
form
タグの中にrunat="server"
ContentPanels
それを必要とするコントロールを含むの前- を含む典型的なコントロールUpdatePanels
:<%=ページタイトル%>
</form>
</body>
スクリプト マネージャは、使用する前にページに配置する必要があります。これは、ページ自体に直接配置するか、使用している場合はマスター ページに配置します。
マークアップは次のようになります。
<asp:ScriptManager ID="ScriptManager1" runat="server" LoadScriptsBeforeUI="true"
EnablePartialRendering="true" />