ASP教程:ASPX 的 @Register 命令

 比较汗颜的一件事情,春节放假前,自己写的一段代码,不知道为啥,aspX ,能加载ASCX.cs 中的代码,但是不能加载 ASCX 中的源文件, 由于静不下心来,就没有解决这个问题,今天回来上班后,发现竟然是 ASPX 的 @Register 命令写错了导致了的。

正确的应该是写成下面方式:

<%@ Register TagPRefix="myTagPrefix"  TagName="ConfigNavigation"  Src="/Controls/ConfigNavigation.ascx" %> 但是我却把它写成了下面方式:

<%@ Register TagPrefix="myTagPrefix"  Namespace="MyWEB.Controls"  Assembly="MyWebProject" %>后一种写法,只会加载cs文件对应的类,而不会加载 ascx 中的内容,从而就出现了我这里碰到的问题。

下面是@Register 命令的几种写法汇总,参考MSDN的http://msdn.microsoft.com/zh-cn/library/c76dd5k1.aspx 整理而来:

<%@ Register tagprefix="tagprefix" namespace="namespace" assembly="assembly" %>
<%@ Register tagprefix="tagprefix" namespace="namespace" %>
<%@ Register tagprefix="tagprefix" tagname="tagname" src="pathname" %>其中的每一个属性描述如下:

tagprefix
一个任意别名,它提供对包含指令的文件中所使用的标记的命名空间的短引用。

namespace 正在注册的自定义控件的命名空间。
tagname 与类关联的任意别名。此属性只用于用户控件。
assembly 与 tagprefix 属性关联的命名空间所驻留的程序集。
程序集名称不能包括文件扩展名。另请注意,如果 assembly 属性丢失,asp.net 分析器会假定应用程序的 App_Code 文件夹中存在源代码。如果您希望在页面上注册控件的源代码而不对其进行编译,请将源代码放在 App_Code 文件夹中。ASP.NET 在运行时动态编译 App_Code 文件夹中的源文件。  
src 与 tagprefix:tagname 对关联的声明性 ASP.NET 用户控件 文件的位置(相对的或绝对的)。

src 属性值既可以是相对路径,也可以是从应用程序的根目录到用户控件源文件的绝对路径。为方便使用,建议使用相对路径。例如,假设将应用程序的所有用户控件文件存储在应用程序根目录的子目录 \Usercontrol 中。若要包括 Usercontrol1.ascx 文件中的用户控件,请在 @ Register 指令中包含以下内容:

Src="~\usercontrol\usercontrol1.ascx" 代字号 (~) 字符表示应用程序的根目录。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的ASP.NET和SQL Server的用户注册代码和教程: 1. 创建数据库表 首先在SQL Server中创建一个用户表,可以包含以下字段:ID、用户名、密码、邮箱、注册时间等。 2. 创建ASP.NET页面 在Visual Studio中创建一个新的ASP.NET网站项目,添加一个名为“Register.aspx”的页面。 3. 添加控件 在“Register.aspx”页面中添加以下控件: - TextBox(用于输入用户名) - TextBox(用于输入密码) - TextBox(用于确认密码) - TextBox(用于输入邮箱) - Button(用于提交注册信息) 4. 编写代码 在“Register.aspx.cs”文件中编写以下代码: ``` using System; using System.Web; using System.Web.UI; using System.Data.SqlClient; public partial class Register : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnSubmit_Click(object sender, EventArgs e) { string username = txtUsername.Text.Trim(); string password = txtPassword.Text.Trim(); string confirmPassword = txtConfirmPassword.Text.Trim(); string email = txtEmail.Text.Trim(); DateTime date = DateTime.Now; // 验证输入的数据 if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(confirmPassword) || string.IsNullOrEmpty(email)) { lblMessage.Text = "请填写所有必填项!"; return; } if (password != confirmPassword) { lblMessage.Text = "两次输入的密码不一致!"; return; } // 插入数据到数据库 string connectionString = "Data Source=yourServerName;Initial Catalog=yourDatabaseName;Integrated Security=True"; string query = "INSERT INTO Users (Username, Password, Email, RegisterTime) VALUES (@Username, @Password, @Email, @RegisterTime)"; using (SqlConnection connection = new SqlConnection(connectionString)) { using (SqlCommand command = new SqlCommand(query, connection)) { command.Parameters.AddWithValue("@Username", username); command.Parameters.AddWithValue("@Password", password); command.Parameters.AddWithValue("@Email", email); command.Parameters.AddWithValue("@RegisterTime", date); connection.Open(); int result = command.ExecuteNonQuery(); connection.Close(); if (result > 0) { lblMessage.Text = "注册成功!"; } else { lblMessage.Text = "注册失败,请稍后再试!"; } } } } } ``` 5. 运行程序 现在可以运行程序并访问“Register.aspx”页面进行注册了。 这只是一个简单的示例,实际开发中需要更多的验证和错误处理。另外,为了安全起见,密码应该进行加密存储

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值