gpt4 book ai didi

javascript - ASP.NET 4.0 集成管道抛出 javascript 错误

转载 作者:行者123 更新时间:2023-12-02 16:12:59 26 4
gpt4 key购买 nike

我使用.NET 3.5框架开发了一个ASP.NET应用程序,并部署在应用程序池DefaultAppPool<的IIS.

enter image description here

代码:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="Test.aspx.vb" Inherits="Sample.sample"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>Test</title>
<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body onload="document.frmTest.btnAdd.focus();">
<form id="frmTest" method="post" runat="server">
<input tabIndex="9" type="button" value="Add" name="btnAdd">
</form>
</body>
</HTML>

过去 2 年运行没有任何问题。

现在,我已将 IIS 中的应用程序池从 DefaultAppPool 更改为 ASP.NET v4.0 Integrated Pipeline 模式。

enter image description here

应用程序抛出错误

SCRIPT5007: Unable to get property 'btnAdd' of undefined or null reference 

enter image description here注意:我已将应用程序池恢复为DefaultAppPool,应用程序运行时没有任何错误。

这个错误的原因是什么?是否需要更改任何设置来修复该错误?

最佳答案

更改您的代码以改为使用

document.forms['frmTest'].btnAdd.focus();

或者为表单元素指定 name 属性,如下所示:

<form method="post" action="Default" name="frmTest">

当您更改框架版本时,.net 可能会向 aspx 页面添加其他属性,因此代码似乎适用于默认应用程序池 .net Framework 2.0

更新:

原因是,在 ASP.NET v4.0 name form 的属性渲染页面时不会生成标记。

我们可以通过在 <system.web> 中添加以下设置来解决此问题应用程序的 web.config 中的标记文件

<pages controlRenderingCompatibilityVersion="3.5" />

关于javascript - ASP.NET 4.0 集成管道抛出 javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29963989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com