详解Asp.Net母版页元素ID不一致的体现

所属分类: 网络编程 / ASP.NET 阅读数: 1665
收藏 0 赞 0 分享

本文介绍了Asp.Net母版页元素ID不一致的体现,分享给大家,具体如下;

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Theme="style" AutoEventWireup="true"
   CodeFile="r_Balance.aspx.cs" Inherits="Report_r_Balance" %>

<asp:Content ID="content" ContentPlaceHolderID="MainContent" runat="server">

 

   <form id="form1" runat="server">
     <div>
       <table cellspacing="0" cellpadding="0" border="0">
         <tbody>
           <tr>
             <td>
               <asp:Label ID="lbPagename" runat="server" SkinID=" " Text="余额统计"></asp:Label>
             </td>
           </tr>
           <tr>
             <td>
               <asp:ImageButton ID="btnPrint" runat="server" SkinID="b_print" ="btnPrint_Click" />
               <asp:ImageButton ID="btnExport" runat="server" SkinID="b_export" ="btnExport_Click" />
             </td>
           </tr>
         </tbody>
       </table>
       <!--结束功能条-->
       <table border="1" style="font: 宋体; font-size: 12px;">
         <tr>
                   <td style="width: 256px; height: 15px;">
             卡号*</td>
           <td colspan="1" style="width: 233px; height: 15px">
             <asp:TextBox ID="txtc_printno" runat="server"></asp:TextBox></td>
           <td colspan="1" style="height: 24px; font-size: 14px; font-family: 宋体; width: 180px;"
            >
             <asp:ImageButton ID="nSearch" runat="server" AlternateText="查询" ImageAlign="Middle"
               ImageUrl="~/images/go.gif" ="nSearch_Click" />
           </td>
         </tr>
       </table>

....

生成的HTML代码:

  <form name="aspnetForm" method="post" action="r_Balance.aspx" id="aspnetForm">

<table cellspacing="0" cellpadding="0" border="0">
         <tbody>
           <tr>
             <td>
               <span id="ctl00_MainContent_lbPagename" style="display:inline-block;color:#F2F3F9;border-style:None;font-family:宋体;font-size:13px;height:22px;">余额统计</span>
             </td>
           </tr>
           <tr>
             <td>
               <input type="image" name="ctl00$MainContent$btnPrint" id="ctl00_MainContent_btnPrint" src="../App_Themes/style/images/b_print.jpg" ="return np();" style="border-style:Ridge;border-width:0px;" />
               <input type="image" name="ctl00$MainContent$btnExport" id="ctl00_MainContent_btnExport" src="../App_Themes/style/images/b_export.jpg" style="border-style:Ridge;border-width:0px;" />
             </td>
           </tr>
         </tbody>
       </table>
       <!--结束功能条-->
       <table border="1" style="font: 宋体; font-size: 12px;">
         <tr>

           <td style="width: 256px; height: 15px;">
             卡号*</td>
           <td colspan="1" style="width: 233px; height: 15px">
             <input name="ctl00$MainContent$txtc_printno" type="text" id="ctl00_MainContent_txtc_printno" style="width:120px;height:16px;font-size:12px;font-family:宋体;color:DimGray;border-width:1px;border-style:Solid;border-color:#C4CAE6;background-color:White;" /></td>
           <td colspan="1" style="height: 24px; font-size: 14px; font-family: 宋体; width: 180px;"
            >
             <input type="image" name="ctl00$MainContent$nSearch" id="ctl00_MainContent_nSearch" src="../images/go.gif" alt="查询" ="return nselect();" style="border-width:0px;" />
           </td>
         </tr>
       </table>

注意:

1.源文件控件和元素ID和生成HTML文件的ID不一致。在生成的HTML中原ASP控件ID加了ctl00_MainContent_前缀,其他元素加了ctl00$MainContent$前缀。原变form1为aspnetForm这是因为aspx页面的控件是母板页的ContentPlaceHolder
控件下的子控件,所以控件ID会变

2.<system.Web><xhtmlConformance mode="Transitional|Legacy|Strict" />在其中选择 Transitional、Strict则产生自动前缀。ctl00.选择 Legacy|则产生自动前缀_ctl0.

3.后台Request.Form["txtc_name"]键值需要改变,必须变为Request.Form["ctl00$MainContent$txtc_name"]才能收到页面输入值

4.至于为什么,只能说这是.NET机制问题。。。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多