VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1996|回复: 17

大家做过动态载入模板页html前台显示内容的网站吗?

[复制链接]

1

主题

7

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-17 14:00:01 | 显示全部楼层 |阅读模式
大家帮忙!问题:首页是index.aspx形式的,然后在后台用代码调用文件夹下面的一个静态的模板页比如是index.htm,里面有{%title%},或者函数{%ShowArticleList(x,x,x,x,x,true,false,0,1,1,3,4)%}等等,然后替换出来,利用缓存加载到index.aspx里面显示出来,如果模板也里面有.net控件,还要加载控件内容,程序还要判断,查找控件,内容绑定等等,这些怎么实现?
大家帮帮忙!
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-17 19:45:01 | 显示全部楼层
这种情况一般用masterpage来实现,只要指定当前页的masterpage就可以了,其实和模板效果是一样的,只是你不用再管理模板页里的东西,只需要替换其中的部分就可以了
回复

使用道具 举报

1

主题

7

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-12-17 20:45:01 | 显示全部楼层
如果生成静态呢?masterpage也就行不通了
回复

使用道具 举报

0

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-19 23:15:01 | 显示全部楼层
静态页也可以的,比如你可以通过动态页访问:
http://www.xx.com/show.aspx?id=1001
你可以做一个类专门用来生成静态页,生成时自动访问这个动态地址,获取源代码后另存为你想展现的静态页,在新增、修改内容时调用一下静态化操作
好处还有在更换模板时只需要重新静态化一遍就可以,方便很多
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-20 10:00:01 | 显示全部楼层
一般来说都是用欠入式的开发思维,就是将ASPX页加到HTML页
回复

使用道具 举报

0

主题

8

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-12-20 12:00:01 | 显示全部楼层
用ASP.NET,然后通过ExpressionBuilder实现,<%$ %>都是通过ExpressionBuilder来解释的,例如<%$ ConnectionStrings: MyConnection %>就是由ConnectionStringsExpressionBuilder负责解释的,类似的还有AppSettingsExpressionBuilder等。你需要做的就是写一个自己的ExpressionBuilder,在它的GetCodeExpression方法中返回你要填充进去的字符串。
回复

使用道具 举报

1

主题

7

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-12-20 20:45:01 | 显示全部楼层
模板页面index.htm里面的内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1">
    <div>
        wo ai ni a
        <%=title()%></div>
    </form>
</body>
</html>

首页Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>
<%@ OutputCache Duration="180" VaryByParam="None" %>

源文件Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
    {        
        string InForPath = "Templets/index.htm";
        string path = System.Web.HttpContext.Current.Server.MapPath(InForPath);
        StreamReader sr = new StreamReader(path, System.Text.Encoding.Default);
        string line="";
        try
        {               
            line = sr.ReadToEnd();
        }
        finally
        {
            sr.Close();
            sr.Dispose();
        }
        if(!Page.IsPostBack)
        {
            Page.Controls.Add(Page.ParseControl(line));
        }      
    }
    public static string title()
    {
        string str = "wo shi ni de baobei";
        return str;
    }


以上简单事例
问题是函数title不能执行,而且不能加入runat="server",否则会出现服务器端隐藏控件
大家看看有什么办法吗?
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-20 23:00:01 | 显示全部楼层
IIS添加html的.net framework映射

RewriteUrl

页面设缓存

效果差不多
回复

使用道具 举报

1

主题

7

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-12-21 04:15:01 | 显示全部楼层
如果数据量大的话,服务器会卡死
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-21 06:30:01 | 显示全部楼层
就是循环替换目标数据里的标签
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表