当我尝试编译我的 asp.net 页面时,我一直在处理一组不寻常的错误。此页面继承自我的母版页。它应该从那里获取 Scriptmanager。但我得到的错误表明它不是。
现在我的页面中有这个:
<%@ Page Title="MassUpdate" Language="C#"
MasterPageFile="~/Site1.Master"
AutoEventWireup="true"
CodeBehind="Update.aspx.cs"
Inherits="AdminSite.Update"
MaintainScrollPositionOnPostback="true" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server" >
<div id="contentarea">
<div>
<h3 style="color:Red; padding-left:5px;">
WARNING - This page can push large amounts of data into the database. Use care when using it!
</h3>
</div>
<asp:ScriptManagerProxy runat="server" >
</asp:ScriptManagerProxy>
在我的母版页中,我有这个:
<body>
<header>
<div id="banner">
<h1 style="color:#DBFFFF">UAC Parts Admin</h1>
</div>
</header>
<form id="form1" runat="server">
<div id="container">
<asp:ContentPlaceHolder ID="MainContent" runat="server">
</asp:ContentPlaceHolder>
<asp:LoginView ID="LoginView1" runat="server" EnableViewState="false">
<LoggedInTemplate>
<div id="menubar">
<h6>Reports</h6>
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery.js" />
<asp:ScriptReference Path="~/Scripts/jqueryui.js" />
<asp:ScriptReference Path="~/Scripts/menubar.js" />
</Scripts>
</asp:ScriptManager>
第一个错误是这样的:
ID 为 '' 的控件需要页面上的 ScriptManager。ScriptManager 必须出现在任何需要它的控件之前。
当我的页面上没有 ScriptManager 而是使用 ScriptManagerProxy 时,就会发生这种情况。即使我的母版页上有 ScriptManager。
现在,当我在我的页面上放置一个 ScriptManager 时,我得到了一个不同的错误。
只能将 ScriptManager 的一个实例添加到页面中。
我需要做什么才能使其正常工作?这是我的 Nuget 软件包之一的问题吗?(JuiceUI、Widgmo 等)
如果需要,我很乐意发布代码。
编辑: 是的,这整件事很奇怪。奇怪的是,母版页本身没有问题。但只有当其他页面使用它时,我才有任何问题。我相信将它移动到表单标签之后的第一个元素是解决方案。尽管我也在代码中将 ScriptManagerProxy 向上移动了一点。