0

Я разработал приложение ASP.NET с использованием .NET 3.5 framework и развернуто в в пуле приложений DefaultAppPool.ASP.NET 4.0 Integrated PipeLine выдает ошибку javascript

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 года.

Теперь я изменил пул приложений с DefaultAppPool на ASP.NET v4.0 Integrated Pipeline в IIS.

enter image description here

приложение выдает ошибку

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

enter image description here Примечание: У меня есть вернуться в пул приложений DefaultAppPool, приложение работает без каких-либо ошибок.

В чем причина этой ошибки? Есть ли какие-либо настройки для исправления ошибки?

ответ

2

Измените свой код вместо использования

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

Или указать имя атрибут для элемента формы, как показано ниже:

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

При изменении рамочной версии, .net, вероятно, добавив дополнительные атрибуты на страницу aspx и, следовательно, код, похоже, работает с пулом приложений .net framework 2.0

Обновление:

Причина: В ASP.NET v4.0 атрибут name для form тег не создается при рендеринге страницы.

Мы можем исправить это addding ниже установленной в <system.web> тег в web.config файл приложения

<pages controlRenderingCompatibilityVersion="3.5" /> 
+0

спасибо .. Причина заключается в том, что в 'ASP.NET v4.0' в' name' атрибута Тег 'form' не генерируется. Есть ли способ обхода или настройки в файле веб-конфигурации для исправления этой ошибки без изменения кода. Потому что мне нужно изменить во многих файлах. –