欢迎光临

木子屋

标题: 总结aspx必须放在具有 runat=server 的窗体标记内的控件

作者: dnawo

日期: 2010-03-25 04:10 PM

分类: Web编程

内容: 今天测试一个aspx页报错，提示：类型“TextBox”的控件“TextBox1”必须放在具有 runat=server 的窗体标记内。 页面代码如下：
复制内容到剪贴板 程序代码<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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>
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</body>
</html>
很明显，少了form的原因，原因是我想去掉页面中隐藏的input而去掉了form：
引用内容<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGSeyZbEJyAclc40+nGVQK0EIblvEA==" />
加上form再测试就正常了：
复制内容到剪贴板 程序代码<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
后来又发现并非所有服务控件都要放在form中，总结了下：
必须放在具有 runat=server 的窗体标记内的控件：
TextBox
Button
LinkButton
ImageButton
DropDownList
ListBox
CheckBox
RadioButton
HiddenField
Calendar
FileUpload
Wizard
GridView
DetailsView
FormView
可以不放在具有 runat=server 的窗体标记内的控件：
Label
HyperLink
CheckBoxList
RadioButtonList
Image
ImageMap
Table
BulletedList
Literal
AdRotator
Xml
MultiView
Panel
PlaceHolder
View
Substitution
Localize
DataList
ListView
Repeater
SqlDataSource
AccessDataSource

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 8.088 ms

返回

标题: 总结aspx必须放在具有 runat=server 的窗体标记内的控件

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 8.088 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 8.453 ms

返回