当我在我的主页上使用这个脚本时,我得到这个异常

本文关键字:脚本 异常 我的 主页 | 更新日期: 2023-09-27 18:13:54

我得到这个异常当我使用这个脚本在我的主页

<script language="javascript" type="text/javascript">
    function SetSession() {'<%=Session["ShowHjælpBox"] = "Test" %>' };
</script>

我得到例外,当我去我的一个页面,我有一个teleerik组件(自动完成框)这让我很困惑,请帮助我-.-

Exception:
System.Web.HttpUnhandledException (0x80004005): Der blev udløst en undtagelse af typen 'System.Web.HttpUnhandledException'. ---> System.Web.HttpException (0x80004005): Please, see whether wrapping the code block, generating the exception, within RadCodeBlock resolves the error. ---> System.Web.HttpException (0x80004005): Samlingen Controls kan ikke ændres, for objektet indeholder kodeblokke (dvs. <% ... %>).
   ved System.Web.UI.ControlCollection.Add(Control child)
   ved Telerik.Web.SkinRegistrar.RegisterCssReference(Page page, Type registerType, String url)
   ved Telerik.Web.SkinRegistrar.RegisterCssReference(Page page, Type registerType, String url)
   ved Telerik.Web.SkinRegistrar.RegisterCssReferences(ISkinnableControl control)
   ved Telerik.Web.UI.RadDataBoundControl.RegisterCssReferences()
   ved Telerik.Web.UI.RadDataBoundControl.ControlPreRender()
   ved Telerik.Web.UI.RadAutoCompleteBox.OnPreRender(EventArgs e)
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Control.PreRenderRecursiveInternal()
   ved System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   ved System.Web.UI.Page.HandleError(Exception e)
   ved System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   ved System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   ved System.Web.UI.Page.ProcessRequest()
   ved System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   ved System.Web.UI.Page.ProcessRequest(HttpContext context)
   ved ASP.tidsbestilling_aspx.ProcessRequest(HttpContext context) i c:'Users'cc'AppData'Local'Temp'Temporary ASP.NET Files'vs'6184c3c9'f93c9d53'App_Web_ix30hemr.0.cs:linje 0
   ved System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   ved System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

如果有人有另一种方式来添加一个会话点击一个按钮,请告诉我,ps我不希望它的回发

当我在我的主页上使用这个脚本时,我得到这个异常

我不确定我能正确地读取异常,但是您是否尝试在RadCodeBlock控件中包装服务器代码块:

<telerik:RadCodeBlock runat="server" ID="RadCodeBlock1">
    <script language="javascript" type="text/javascript">
        function SetSession() {
            '<%=Session["ShowHjælpBox"] = "Test" %>'
        };
    </script>
</telerik:RadCodeBlock>

附带说明-我不确定您想要实现什么,但此代码将在您的页面上呈现以下内容:

        <script language="javascript" type="text/javascript">
            function SetSession() {
                'Test'
            };
        </script>

不是一个真正的JS函数,它将设置一个SERVER会话变量。在JS中根本无法做到这一点。JS在浏览器中运行,Session在服务器上。因此,您需要某种形式的回发,它知道会话,以便在用户操作上设置会话。也许这篇博文会给你一些启发:http://www.telerik.com/blogs/different-ways-to-make-a-request-to-the-server.

use:

<script type="text/javascript">
function SetSession()
{
    var userName = "Test";
    '<%Session["ShowHjælpBox"] = "' + userName + '"; %>';         
}
</script>