原贴:
一:
ASP.NET的页面及时代码,能否实现模版功能(用来做主题功能)
http://topic.csdn.net/u/20100407/11/a5935f58-ca33-4a63-863f-1df4c6c6b4cd.html?seed=528548678&r=64475015#r_64475015
二:
http://topic.csdn.net/u/20100407/13/67fc08fa-4e64-4d7d-8e4b-08c1f2c2c1be.html?seed=2068792399&r=64479438#r_64479438也就是说:
asp的时候是:代码和html页面写在一起
asp.net是aspx+aspx.cs文件
现在我要把aspx文件写的内容,放在一个txt文本里面来写,而不是放在aspx里面谢谢示例下载:http://www.innoworkspc.com/images/themestest.rar急
一:
ASP.NET的页面及时代码,能否实现模版功能(用来做主题功能)
http://topic.csdn.net/u/20100407/11/a5935f58-ca33-4a63-863f-1df4c6c6b4cd.html?seed=528548678&r=64475015#r_64475015
二:
http://topic.csdn.net/u/20100407/13/67fc08fa-4e64-4d7d-8e4b-08c1f2c2c1be.html?seed=2068792399&r=64479438#r_64479438也就是说:
asp的时候是:代码和html页面写在一起
asp.net是aspx+aspx.cs文件
现在我要把aspx文件写的内容,放在一个txt文本里面来写,而不是放在aspx里面谢谢示例下载:http://www.innoworkspc.com/images/themestest.rar急
所以我想用ASP.NET的方式写的模版,直接替换掉他原来的ASPX或ASCX内容不是更简单吗?而且更强大
-----------------------------------------------------------------------------------------这个的实现远没有想的那样简单,要做的事 是 在编码后的代码运行时 动态改变该编译代码不论是直接实现还是变相实现 所带来的后果是目前无法估量的 并且都是不良性的有点 修复一个BUG的同时引入了N个BUG的味道有个地方需要改下在编码后的代码运行时 动态改变该编译代码
=》
在编译后的代码运行时 动态改变该编译代码
Response.End()就可以把,主意文件名路径问题
1、asp.net提供有主题和样式的设置,为什么不用这个功能。
2、你这个方式asp网站有很多这样的,定义一个html的模板,用asp页面直接填充数据就行,这种例子很多的。不知道说的对不对,抛砖引玉吧。
如果你想实现动态建立一个aspx网页,那确实很麻烦
我的名字是:
现在是:
您现在看到的是默认用户自定义模版页面
<body>
现在是:<%= DateTime.Now.ToString() %>
<br />
我的名字是:<%= MyName %>
<br />
您现在看到的是默认显示页面
</body>
protected void Application_Start(object sender, EventArgs e)
{
//判断模版是否存在,如果存在用模版如果不存在取Core中的模版
string themes = "blue";//这个以后写配置文件
string testPath = Server.MapPath("~/Themes/" + themes + "/Test.html"); //这里定到文件Test.aspx
if (System.IO.File.Exists(testPath))
{
string text = null;
//如果存在,将他替换掉Test.aspx文件
using (var sr = new System.IO.StreamReader(testPath))
{
text = sr.ReadToEnd();
}
//替换掉原来的
using (var sw = new System.IO.StreamWriter(Server.MapPath("~/Test.aspx"), false, System.Text.Encoding.UTF8))
{
sw.Write(text);
}
}
else
{
//如果不存在取默认样式
string text = null;
//如果存在,将他替换掉Test.aspx文件
using (var sr = new System.IO.StreamReader(Server.MapPath("~/Core/View/Test.html")))
{
text = sr.ReadToEnd();
}
//替换掉原来的
using (var sw = new System.IO.StreamWriter(Server.MapPath("~/Test.aspx"), false, System.Text.Encoding.UTF8))
{
sw.Write(text);
}
}
}我现在用IO的方法是可以实现我的要求,
但是这样的话,每次在Application_Start的时候都要进行对Test.aspx页面的修改
但是我们传到网上的话一般只会给只读的权限,所以会有权限问题谢谢
之前搜索过用户控件的一些内容,好像看到过加载文件然后进行render