0

in application poolを使用してデプロイしたASP.NETアプリケーションを開発しました。.NET 3.5 frameworkIISDefaultAppPool

ここに画像の説明を入力

コード:

<%@ 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年間、問題なく動作しています。

ここで、アプリケーション プールを から のモードに変更しDefaultAppPoolましASP.NET v4.0 Integrated PipelineIIS

ここに画像の説明を入力

アプリケーションがエラーをスローします

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

ここに画像の説明を入力 注:アプリケーション プールを に戻しましたDefaultAppPool。アプリケーションはエラーなしで実行されます。

このエラーの原因は何ですか? エラーを修正するために変更する設定はありますか?

4

1 に答える 1

2

代わりに使用するようにコードを変更します

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

または、以下のように form 要素に name 属性を指定します。

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

フレームワークのバージョンを変更している場合、.net はおそらく aspx ページに追加の属性を追加しているため、コードはデフォルトのアプリ プール .net フレームワーク 2.0 で動作するようです。

アップデート:

その理由は、ページのレンダリング中にタグASP.NET v4.0name属性が生成されないためです。form

<system.web>アプリケーションのweb.configファイルのタグに以下の設定を追加することで、これを修正できます。

<pages controlRenderingCompatibilityVersion="3.5" />
于 2015-04-30T09:59:44.543 に答える