希望大家在设计程序的时候养成良好的命名规范,哪怕是在做一个Demo的时候,否则出现的错误也许会make you creazy!
下面我就哪一个反面教材给大家瞧瞧!
一个极其简单的实例,猜猜程序运行会不会有问题!
aspx页面代码如下,其实就是两个服务器控件,一个Button,一个LinkButton:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="LinqWeb.Test" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="submit" Text="Button" OnClick="submit_Click" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
</div>
</form>
</body>
</html>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="submit" Text="Button" OnClick="submit_Click" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>
</div>
</form>
</body>
</html>
下面是后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LinqWeb
{
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('OK')</script>");
}
protected void submit_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('button event')</script>");
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LinqWeb
{
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('OK')</script>");
}
protected void submit_Click(object sender, EventArgs e)
{
Response.Write("<script>alert('button event')</script>");
}
}
}
有没有错误呢,谁能找到错误我佩服他,的确是没有错误!
但运行的时候我们点击LinkButton按钮的时候意想不到的事情发生了
产生了下面这个错误
为什么会产生这个错误呢,去问Microsoft吧。
当我们使用IE8的调试功能的时候就会发现
现在大家应该明白了吧,有没有发现黄色背景的代码,有一个叫submit()的方法,在这里可以说是asp.net的一个小小Bug吧,可能当.net将服务器控件解析成html控件发往客户端时和生成的javascript代码发生的冲突,导致javascript不正确调用。
希望大家引以为鉴!