内容页与母版页问题
母版页:MasterPage.master
内容页:default.aspx
default.aspx
<%@ Page Language= "C# " MasterPageFile= "~/MasterPage.master " AutoEventWireup= "true " CodeFile= "Default.aspx.cs " Inherits= "article_Default " Title= "Untitled Page " %>
<asp:Content ID= "Content1 " ContentPlaceHolderID= "mainContent " Runat= "Server ">
<asp:TextBox ID= "ChannelName " CssClass= "insideInputL " Height= "15px " Width= "200 " runat= "server "> </asp:TextBox>
<asp:Label ID= "msgChannelName " runat= "server "> <img src= "images/mustInput.gif " alt= "必填项 " /> </asp:Label>
<asp:Button CssClass= "submitButton " Text= "提 交 " ID= "submitButton1 " OnClick= "submitButton1_Click " runat= "server " />
</asp:Content>
1.为什么查看源代码textBox和Button控件ID的名字都变了?可以不让他们变么?
2.textBox,Button的ID变成了ctl00$mainContent$ChannelName,ctl00_mainContent_submitButton1,
Label 的ID变成了ctl00_mainContent_msgChannelName为什么他们分别是以$和_分隔的(UniqueID,ClientID),这个有什么规律怎么判断使用哪个函数?ctl00是固定值么?
3.在MasterPage.master页定义了 <form name= "myform " action= " " method= "post " id= "myform " runat= "server "> ,为什么运行后页面里变成了 <form name= "aspnetForm " method= "post " action= "xxxx.aspx " id= "aspnetForm ">
4.为什么在request[ "ChannelName "]的时候需要改成ChannelName.UniqueID而ChannelName.text就可以直接附值而不是ChannelName.UniqueID.text
郁闷了一晚上,不得正解,请各位兄弟帮帮忙啊~!
------解决方案--------------------所有的问题都是一个问题.
aspx页面的控件是母板页的ContentPlaceHolder
控件下的子控件,所以控件ID会变.
------解决方案--------------------这个是.net 机制问题
.net为了 自身的aspx服务器控件 与 以前的html控件 id重复
所以
一般都会改变 最终输出到 客户端的html代码中的id值
当然这些值一般也是按照一定的规律来修改的