透过现象看本质-使用vs.net第二天

今天遇到一个问题,当我在作一个类似webeditor的东西的时候,我在以前开发的用户自定义控件,没法在vs.net项目中使用。
  
  我以微软。net入门教程中的一个例子,来讲述我出现的问题
  http://chs.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/aspplus/samples/webforms/pagelets/Pagelet2.src
  
  按照微软入门的例子编辑后,在一个vs.net的页面中加入自定义控件,注册自定义控件
  <%@ Register TagPrefix=“Acme“ TagName=“Message“ Src=“pagelet2.ascx“ %>
  
  并在vs.net中一个apsx页面中,定义其属性
  void SubmitBtn_Click(Object sender, EventArgs E) {
   MyMessage.Text = “消息文本已更改!“;
   MyMessage.Color = “red“;
  }
  结果编译的时候出现,MyMessage没有定义。。。。。。
  在原aspx文件中,运行通过的,为什么放在一个vs.net中aspx文件就不能定义呢?
  
  上网看看资料,发现这部分资料分为两类:
  一类就是类似微软入门教程上面的东西;
  另一类就是将如何编程完成一个自定义控件。
  具体讲到如何将一个已经定义好的控件,转换到vs.net中去,却没有。
  结果倒腾半天作了一些尝试,都没有成功。
  老师教育的好,看问题要看本质。
  vs.net作asp.net的本质是什么?
  说白了,asp.net就一个被类化的应用程序!!!
  vs.net的编译是什么意思?
  就将一个页面(被定义成类的页面)编译称为dll应用程序。
  
  想到这里我忽然明白了,
  原来,虽然编辑的控件,在vs.net中没有定义在类中,所以,它没法被其页面类(空间)来使用。
  因此,我重新按照vs.net的aspx页面规则定义如下:
  
  namespace MyControls {
  
   public class myEditor :system.web.ui.usercontrol......
  ...........
  然后在原来的aspx文件中,引用类,定义属性。。。编译通过。。。
  
  原来这么简单。

你可能感兴趣的:(.net)