ASP.Net+XML打造留言薄

一.概述:

  留言簿是网站的一个重要组成部分,是访问者发表意见的场所,也是网站管理员了解网站基本运行情况的有力工具,所以留言簿在现在的网站中扮演了十分重要的角色。

  不过在以前开发一个留言簿并不是一件容易的事,开发者的工作量往往会很大。而现在随着微软推出VS.NET,相应的技术也推陈出新。特别是XML技术在.NET Framework中的广泛运用,使得整个.NET构架具有十分优越的基础。而ASP.NET中推出的崭新的编程模型更使得开发Web应用程序变得非常容易。本文就结合ASP.NET技术和XML技术的优点向大家介绍如何打造一个属于自己的留言簿。

  二.实现方法:

  一个基本的留言簿应至少包括两个功能:接受用户输入的信息并保存该信息到后台数据库;显示用户输入的信息。用户输入的信息一般包括用户名、Email地址、QQ号码、用户主页、留言信息等,这些信息通常是保存在后台数据库的某个表中的,不过本文要运用一个XML文件来存储这些信息。显示用户输入的信息时一般得把所有的信息都显示出来,这里的方法就是从XML文件中读取数据并运用XSLT技术对其进行格式转换,最后以HTML的形式显示在浏览器中。

  这样,我们的留言簿就需要两个Web页面,一个用于接受用户的输入信息,另一个用于显示用户已经输入过的信息。而存储信息的XML文件(guestbook.xml)则需具有如下的结构:

<?xml version="1.0" encoding="GB2312"?> 
<guestbook> 
<guest> 
<name>令狐冲</name> 
<email>doose@etang.com</email> 
<qq>10102350</qq> 
<homepage>www.doose.com</homepage> 
<comment>本留言簿由"令狐冲"创建,希望你能喜欢哦:)要知道如何创建一个属于自己的留言簿,那么就请仔细阅读《运用ASP.NET和XML技术打造留言簿》一文!</comment> 
</guest> 
</guestbook>

  下面我们先来创建用于接受用户输入信息的Web页面-GuestBook.aspx。根据前面所提的基本要求,该Web页面包括了以下几个部分:留言簿标题、"用户名:"标签及输入框、"Email地址:"标签及输入框、"QQ号码:"标签及输入框、"个人主页:"标签及输入框、"留言信息:"标签及输入框、一个"确定"按钮、一个"重置"按钮、一个"查看留言簿"按钮,同时该页面还包括了两个验证按钮,分别用于验证用户名以及Email地址是否为空,若为空,则提醒用户输入。同时,为使留言簿具有良好的用户界面,我运用了表格进行页面布置,这样留言簿中的各个成分就能有条有理,层次分明了。有关该Web页面的详细代码请参考文后附带的源代码,这里就不给出了。页面布置的图示如下:

图1

  完成了该Web页面的布置,我们仅仅是完成了一部分的工作,到此为止我们并没有进行过真正的编码。我想大家对ASP.NET中的代码后置技术肯定是了解或熟悉的,它将Web页面的布置工作和后端的编码工作区分开来,达到了良好的分离效果。下面我们就为该Web页面中的三个按钮分别编写消息相应函数:

private void btnOK_Click(object sender, System.EventArgs e) 

SaveXMLData();

name.Text = ""; 
email.Text = ""; 
qq.Text = ""; 
homepage.Text = ""; 
comment.Text = ""; 
}

private void btnReset_Click(object sender, System.EventArgs e) 

name.Text = ""; 
email.Text = ""; 
qq.Text = ""; 
homepage.Text = ""; 
comment.Text = ""; 
}

private void btnView_Click(object sender, System.EventArgs e) 

// 显示所有用户的留言信息 
Response.Redirect( "ViewGuestBook.aspx" ); 
}

  其中,第一个按钮是最重要的,它能将用户的输入信息存储到XML文件中,调用的方法就是SaveXMLData();而第二个按钮仅仅完成文本框的重置清空工作;第三个按钮的作用是运用另一个Web页面显示所有的用户输入信息。同时,第一个按钮在成功保存信息后也会将浏览器导向到显示所有用户输入信息的页面。 
  下面我们来详细分析一下SaveXMLData()方法,其实现如下:

private void SaveXMLData() 

try 

// 创建一个XmlDocument对象,用于载入存储信息的XML文件 
XmlDocument xdoc = new XmlDocument(); 
xdoc.Load( Server.MapPath( "guestbook.xml" ));

// 创建一个新的guest节点并将它添加到根节点下 
XmlElement parentNode = xdoc.CreateElement( "guest" ); 
xdoc.DocumentElement.PrependChild( parentNode );

// 创建所有用于存储信息的节点

ASP.Net+XML打造留言薄相关推荐

  1. 基于Asp.Net Core打造轻量级内部服务治理RPC(二 远程服务设计)

    紧接上一篇<基于Asp.Net Core打造轻量级内部服务治理RPC(一)>文章.本文主要讲解基于Asp.Net Core的远程服务设计和实现. 在上一篇中讲过,服务提供者提供的服务实际上 ...

  2. 基于Asp.Net Core打造轻量级内部服务治理RPC(一)

    继之前的<Asp.Net Core + Docker 搭建>文章末尾说过的,将陆续编写基于asp.net core 打造一个内部服务治理的rpc框架.不过前端时间较忙,所以搁置了一段时间. ...

  3. 留言薄+留言薄==BBS

    留言薄+留言薄==BBS其实纯属无聊 目前,免费的BBS申请越来越少了,而且,申请到的质量也不高,因此我们可以采用申请留言薄的方法来拼一个 BBS起来,很简单,方法如下: 首先随便找个地方,申请几个免 ...

  4. ASP.net Xml: ASP.net操作Xml

    专题图编号:ylbtechASPnetXml100010010 XML课件PPT[在线PPT课件倡导者-ylb]  http://wenku.baidu.com/view/bfac3ebe1a37f1 ...

  5. java毕设可以用结构化方法吗,php,java,jsp网络留言薄,怎么实现一个网络留言簿好毕设指导轻松完成...

    本文采用自顶向下的结构化的系统分析方法,阐述了一个功能全面的超市管理系统的开发过程.操作流程及其一些核心的技术.本文首先进行了项目概述,简单介绍了项目开发的背景.项目开发的目的和项目开发的意义:接下来 ...

  6. ASP.NET XML高级编程(一、XML技术简介)

    [ASP.NET XML高级编程读书笔记系列]  System.Xml: .使用基于拉操作的流API或文档对象模型(DOM)创建和处理XML文档: .查询XML文档(使用XPath): .转换XML文 ...

  7. JS+XML打造QQ个性通信录

    JS+XML打造QQ个性通信录 本文大概介绍用JS操纵XML实现具有查询功能的通信录.而且可以把它嵌入到QQ面板. 主要有 Communication.htm,Communication.xml ,C ...

  8. 大学食堂留言薄上的经典(笑破肚肚)

    大学食堂留言薄上的经典(笑破肚肚)1)下一次能不能不要把找还我的钱藏在菜里面. 2)糊辣汤内吃出长筒袜,老板反应灵敏说:"海带咋没切!" 3)能不能不让那个打饭的把手指伸到我的菜里 ...

  9. XPO学习(6)----实现一个简单的留言薄(ASP.NET)

    l留言簿是网站上很常见的一个功能.一个访问者可以通过这个留言簿留下姓名,EMAIL,消息标题及内容.内容显示用ASPxNewscontrol控件.类似界面如下: 步骤: 1.界面设计 2.定义一个持久 ...

  10. 怎么html跟asp结合,xml与asp简单结合实现html模板功能.doc

    PAGE / NUMPAGES 本文利用的是XML的DSO数据绑定功能来实现ASP代码和HTML代码的分离,从而实现快速更换HTML模板的功能,由于本人只是刚刚开始接触XML,有许多不太了解的,在这里 ...

最新文章

  1. LVS的DR模式配置
  2. xml显示浏览器标签_浅析浏览器书签的导入和导出
  3. KDD 18 AAAI 19 | 异构信息网络表示学习论文解读
  4. 相同bit1的最大的数
  5. 【DP】【记忆化搜索】NIKOLA(jzoj 1150)
  6. 多重异常处理 java
  7. 蓝桥杯BASIC-28 基础练习 Huffuman树
  8. java学习class5
  9. 智慧旅游系统总体设计方案
  10. 单循环赛制php,告别东西部分组LPL实行常规赛单循环赛制
  11. 手把手教你电脑下载b站视频
  12. 16年,平凡而又收获的一年,android底层开发实战
  13. 软考倒计时26天,最后冲刺阶段
  14. 【自由随想录(二)】
  15. 判断对象内的 属性是否为空
  16. arduino编程语言Wiring参考手册API
  17. MySQL服务无法启动咋办?
  18. Geoffrey Hinton——Godfather of Deep Learning
  19. r和python培训
  20. 台式计算机有乱码如何解决,电脑出现乱码怎么修复 电脑字体乱码解决方法

热门文章

  1. 什么是集合竞价和连续竞价
  2. Linux 命令之 locale -- 设置和显示程序运行的语言环境
  3. 订阅者Subscriber的编程实现
  4. 3dfier:GIS数据转3D城市模型
  5. java jdk--同时安装两个jdk并且切换
  6. python怎么读取xls文件
  7. 猜数字游戏(伪随机数对猜数字游戏的影响)
  8. AppWeb认证绕过漏洞(CVE-2018-8715)
  9. 她全奖赴海外读博,一作发Science,毅然回国后任东南大学教授!
  10. 文本匹配-bimpm