【问题记录】Asp.net WebApplication和WebSite中用户控件的使用区别
2011-04-28 17:33
836 查看
今天想模仿一下BlogEngine.net(网站部分是WebSite)中的Widget实现方式,于是新建了一个WebApplication项目,按照BE中的做法,有一个WidgetZone的容器来放所有的用户控件的。这个WidgetZone继承于PlaceHolder。BE最后是这么使用WidgetZone的:
然后再web.config下面增加
也就是声明一个那个blog标签。
我也模仿着BE在App_Code(application项目默认是没有App_code目录的,我手动新建的,感觉这个操作就已经不规范了)新建一个WidgetZone并继承PlaceHolder,然后在网页中引用这个widgetzone最终运行页面时出现了错误,说什么“Unknown server tag 'blog:WidgetZone'.”。我就郁闷了,命名已经在该页面声明了blog这个标签,他就是说找不到。
找了好长时间,找Application与WebSite项目的区别:http://www.cnblogs.com/charles2008/archive/2008/06/27/1222819.html,网上对这两个东西也有过讨论。自己总结一下就是:
1. website项目可以在运行时对代码进行更改,并即时看到效果。而Application需要重新编译。
2. application更利于大型项目的管理,他声称的编译文件容易管理,而website的编译文件名是随机声称的。
3 .就应该是我这次遇到的这个问题了,website可以直接在页面中使用继承了usercontrol的类,而application只能使用带有ascx后缀的,不可以直接使用类。此外,他们在页面顶部声明标签的形式也不一样:
website:
这样只要是app_code文件夹下面继承了usercontrol的类都可以在下面直接引用。
web Application
只能一次指定一个文件,如果像上面那样引用会报错,说找不到这个标签的。
<blog:WidgetZone ID="WidgetZone1" runat="server" ZoneName="be_WIDGET_ZONE" />
然后再web.config下面增加
<pages enableSessionState="false" enableViewStateMac="true" enableEventValidation="true"> <controls> <add namespace="App_Code.Controls" tagPrefix="blog"/> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </controls> <namespaces> <add namespace="BlogEngine.Core" /> </namespaces> </pages>
也就是声明一个那个blog标签。
我也模仿着BE在App_Code(application项目默认是没有App_code目录的,我手动新建的,感觉这个操作就已经不规范了)新建一个WidgetZone并继承PlaceHolder,然后在网页中引用这个widgetzone最终运行页面时出现了错误,说什么“Unknown server tag 'blog:WidgetZone'.”。我就郁闷了,命名已经在该页面声明了blog这个标签,他就是说找不到。
找了好长时间,找Application与WebSite项目的区别:http://www.cnblogs.com/charles2008/archive/2008/06/27/1222819.html,网上对这两个东西也有过讨论。自己总结一下就是:
1. website项目可以在运行时对代码进行更改,并即时看到效果。而Application需要重新编译。
2. application更利于大型项目的管理,他声称的编译文件容易管理,而website的编译文件名是随机声称的。
3 .就应该是我这次遇到的这个问题了,website可以直接在页面中使用继承了usercontrol的类,而application只能使用带有ascx后缀的,不可以直接使用类。此外,他们在页面顶部声明标签的形式也不一样:
website:
<%@ Register namespace="App_Code.Controls" tagPrefix="blog" %>
这样只要是app_code文件夹下面继承了usercontrol的类都可以在下面直接引用。
web Application
<%@ Register TagPrefix="blog" Src="~/WidgetZone.ascx" TagName="zone"%>
只能一次指定一个文件,如果像上面那样引用会报错,说找不到这个标签的。
相关文章推荐
- Asp.net在WebApplication和WebSite中用户控件的使用区别
- Asp.Net中Web用户控件与Web自定义控件的区别和使用建议
- 有关C#+ASP.NET中用户控件(webusercontrol)使用问题2则
- ASP.NET中website与webApplication有何区别?
- ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站
- asp.net用户控件中使用相对路径的解决方法--------图片路径问题(用户控件、图片路径),ResolveUrl
- (转)ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(一)
- asp.net关于WEB端用户重复提交问题。禁用服务器控件按钮问题。
- 如何在ASP.NET中制作Web用户自定义控件,并在aspx页面中使用它的方法和属性?
- ASP.NET web的自定义用户控件以及相关问题
- (转) ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(二)
- asp.net关于WEB端用户重复提交问题。禁用服务器控件按钮问题。
- Asp.Net中WebApplication和WebSite的区别
- ASP.NET Web页面(.aspx)添加用户控件(.ascx)无显示的问题
- ASP.NET Web页面(.aspx)添加用户控件(.ascx)无显示的问题
- ASP.NET中website与webApplication有何区别?
- asp.net 用户控件中 使用相对路径的解决方法-------- 图片路径问题(用户控件、图片路径) ,ResolveUrl
- asp.net用户控件中使用相对路径问题
- Asp.Net中WebSite和WebApplication的区别
- ASP.NET中Website与WebApplication的区别