事件仅在特定机器上触发但在其他机器上不触发

时间:2010-11-10 13:39:14

标签: asp.net events master-pages content-pages

我一直试图解决这个问题好几个星期了,而且真的很令人沮丧。基本上我有一个简单的项目,其中包括一个母版页和一个内容页。以下代码是内容页面中的内容

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:Button ID="Button1" runat="server" Text="ButtonContent" 
        onclick="Button1_Click" />
</asp:Content>

该按钮绑定到一个简单的事件。设置断点以检测事件是否按预期触发。当表单放在内容占位符上方时,事件不会触发。

 <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <asp:ContentPlaceHolder id="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <form></form>
    </div>

    <div>
        <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">

        </asp:ContentPlaceHolder>
    </div>

    <div>


    </div>
    </form>
</body>
</html>

但是,在删除表单或将内容放置在内容占位符下方时会触发该事件。另一方面,在某些机器上,我发现如果在内容占位符之前放置一个表单并不重要。我在4台机器(三个窗口7和一个xp)上尝试过这个项目,无论两台机器上的表格放置如何,它都可以工作,并且在另外两台机器上进行了表格放置。

有人可以指点一些可以解决这个问题或提出任何建议来解决我的问题。我需要在内容占位符之前提供一份表单,以便删除是不可能的。某种设置阻止项目在另一台机器上正常工作也是有意义的

1 个答案:

答案 0 :(得分:0)

根据HTML规范,您不能在表单内部使用表单。如果我没记错的话,当你有这种结构时,某些浏览器就会中断。我认为IE工作正常。

如果您需要其他表单,请将其放在&lt; form id =“form1”runat =“server”&gt;之外。   - 特别是在它之上。这是有效的。