• ASP.NET使用母版页统一网页标题

    在做网页的时候给每个网页设置一个合理的标题是很有必要的事情,而做一个网站的时候需要将所有的标题的格式统一起来,比如将所有网页的标题统一为“XX页面 | XX网站”。

    我在用VS2005做的时候开始没用母版页,后来用母版页的时候发现改内容页的标题其实挺麻烦的,因为每个内容页都要设置标题,而每个标题中都要有网站的名字。如果手工给每个内容页加上该内容页的标题,再加上网站名字,岂不是很麻烦?好在我们用的是动态语言,至少网站名字可以在母版页中直接统一起来。

    下面说下我用的两种方法改写网页标题。

    1、所有的网页标题设置为“XX页面 | XX网站”。

    这种方法很简单,只用在母版页的xx.aspx.cs文件中写上这样一句代码(BasePage.GetSiteName()为获取网站标题的方法)

    Page.Header.Title += " | " + BasePage.GetSiteName();//设置前台页面所有内容页标题

    然后在每个内容页中加上内容页的标题就OK了。

    2、在母版页中改写所有内容页标题

    这样做的好处是如果要修改标题的内容页有很多,那么只用修改母版页就OK了,内容页中的标题可以不用管。这种方式的原理是先判断是哪个内容页请求的母版页,然后根据内容页的文件名来强制改写内容页的标题。

    这种方式下可以用if else判断,也可以用switch case来做

    A、如果只是首页的格式不同(比如首页的标题是“欢迎光临XX网站”,而其他页面都是“XX页面 | XX网站”)

    那么用母版页中xx.aspx.cs用这段代码,其中ContentBox为在母版页中的一个ContentPlaceHolder控件。

    string requestContentType = this.ContentBox.Page.GetType().ToString();//获取请求的内容页类型,格式如ASP.文件名_aspx
    if (requestContentType == "ASP.index_aspx")
    {
        Page.Header.Title = "欢迎光临" + BasePage.GetSiteName();
    }
    else
    {
        Page.Header.Title += " | " + BasePage.GetSiteName();//设置前台页面所有内容页标题
    }
    

    这段代码先判断内容页是不是首页(所有aspx文件名都被转换成形如“ASP.文件名_aspx”,首页文件名为indxe.aspx ,所以就被转成 ASP.index_aspx),然后根据结果改写标题。

    B、如果大部分网页的标题格式都不同或需要在母版页改写所有内容页标题

    string requestContentType = this.ContentBox.Page.GetType().ToString();//获取请求的内容页类型,格式如ASP.文件名_aspx
    
    switch (requestContentType)
    {
        case "ASP.A_aspx" :
        {
            Page.Header.Title = "A的网页标题";
            break;
        }
        case "ASP.B_aspx":
        {
            Page.Header.Title = "B的网页标题";
            break;
        }
        case "ASP.C_aspx":
        {
            Page.Header.Title = "C的网页标题";
            break;
        }
    }
    

    当然应该还有别的方法来改写网页标题,这只是我目前用到的两种,也不一定是最好的。

  • ASP.NET学习记录(1)

    有几天都没冒泡了,今天有空就记录下这两天学习ASP.NET的状况吧,虽然还是很菜,但还感觉有进步,呵呵。

    1、验证码控件

    ASP.NET中有许多现成的控件,不过验证码的暂时还没发现,在网上搜了下,发现一个叫AutoAuthCode的还不错就直接拿来用了。

    下面是该控件的几种样式





    这个控件总体来说还是不错的,里面有不少属性可以使用,还有两个公共方法,不过由于他已经封装,里面用的是table布局,改起来样式不够方便。

    更多信息大家可以去这里看看,上面说的很详细(里面有下载地址):http://blog.szu.edu.cn/Forum/61639

    2、三层架构 

    说实话,三层架构到底该是什么样子我说不清楚,看一个教程就会有一种说法,而且好像都说的通。

    照我看来三层架构的目的是分层,使每一层的信息相对独立。每一层只和他相邻的层交换信息,这个我认为是三层架构的重点所在。

    三层架构虽然复杂了些,但是好处还是突出的。

    3、web.config文件

    Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息。

    想了解web.config的更多信息我建议你看看周金桥的这篇文章,讲解比较详细 web.config详解收藏-周金桥

    4、使用母版页后内容页中head问题

    ASP.NET使用母版页可以让页面布局保持一致,但另外一点不方便的是每个内容页中没有了head标签。

    想改标题?没问题,内容页中的@Page 里面有个Title,这个就是标题了。

    另外head标签中还要很多meta,如果要修改的话可以看看这篇文章 在asp.net 2.0中结合母板页使用meta标签

    5、延时X秒后跳转到某一页面

    这个功能还是比较实用的,我这里有两种很简单的方法。

    A、利用head中的meta

    <meta http-equiv=”refresh” content=”5;url=http://www.zenoven.com”/>

    其中5就是5秒,后面URL就是跳转的页面

    B、利用JS

    <script language=”javascript” >
                                    function goto() 
                                    { 
                                    window.location.href=”index.aspx”; 
                                    } 
                                    setTimeout(“goto()”,5000);  //5秒后跳转到首页
     </script>

  • VS2005母版页使用中的一点问题

    近日在学习ASP.NET做网站,然后用到了VS2005中的MasterPage(母版页),不过我还比较菜,遇到了些问题。

    问题如下

    首先我做了个母版页(MasterPage.master),母版页里面就放了一个id为Content的ContentPlaceHolder.

    然后又做了两个内容页,一个Login.aspx,一个Register.aspx

    这两个内容页里面都放的是一个content控件,页面结构相似,调用CSS也只是在母版页中,问题是Register.aspx页面显示正常,而Login.aspx中的CSS显示就不正常了,content控件中内容的CSS好像就没有起作用。有朋友提示说是不是路径的问题,但我检查后发现不是路径的问题,实在奇怪。

    两个内容页的代码如下

    1、Register.aspx的content控件代码

    <asp:Content ID=”Content2″ ContentPlaceHolderID=”Content” Runat=”Server”>
    <div id=”main_no_sidebar”>
    <div id=”register”>
    <form id=”registerform” name=”register” action=”Register.aspx” method=”post” >
    <p>
    <label><span>用户名</span><input type=”text” id=”username” value=”” /></label>
    </p>
    <p>
    <label><span>真实姓名</span><input type=”text” id=”realname” value=”” /></label>
    </p>
    <p>
    <label><span>邮箱地址</span><input type=”text” id=”email” value=”” /></label>
    </p>
    <p>
    <label><span>密码</span><input type=”password” id=”password” value=”” /></label>
    </p>
    <p>
    <label><span>重复密码</span><input type=”password” id=”repassword” value=”” /></label>
    </p>
    <p>
    <label><input type=”submit” name=”register” id=”submit” value=”注册” /><input type=”reset” id=”reset” value=”清除”/></label>
    </p>
    </form>
    </div>
    </div>
    </asp:Content>

    2、Login.aspx的content控件代码

    <asp:Content ID=”Content2″ ContentPlaceHolderID=”Content” Runat=”Server”>
    <div id=”main_no_sidebar”>
    <div id=”login_box”>
    <form id=”loginform” name=”loginform” action=”Login.aspx” method=”post” >
    <p>
    <label><span>用户名</span><input type=”text” id=”username” value=”” /><a href=”#”>还未注册?</a></label>
    </p>
    <p>
    <label><span>密码</span><input type=”password” id=”password” value=”” /><a href=”#”>忘记密码?</a></label>
    </p>
    <p>
    <label><input type=”submit” name=”submit” id=”submit” value=”登录” /><input type=”reset” id=”reset” value=”清除”/></label>
    </p>
    </form>
    </div>
    </div>
    </asp:Content>

    ***************************************************

    问题解决后记

    这两个内容页由于都用了form,在24号中这个问题进一步凸显,form嵌套导致IE8下面DIV重复显示。

  • 视频教程:ASP.NET夜话教学视频全集

    ASP.NET夜话教学视频说明

    作者简介:周金桥,csdn网站ID是zhoufoxcn,网名周公,微软2008年7月最有价值专家(MVP)。Csdn网站论坛专家,荣誉专家。微软山西.net俱乐部技术负责人。有超过6年的网站开发经验,擅长于程序性能和安全优化。

    本系列视频是《asp.net夜话》的配套视频教程。《asp.net夜话》是根据在csdn论坛里经常问到的问题结合《asp.net夜话》作者多年的网站开发经验而写,这本书着重讲述如何利用asp.net开发出高效率和高安全性的网站来。在本系列中讲述了asp.net的基本原理和基本控件的用法,并在此基础上加以适当拓展和延伸,使之更适合于指导实际开发。本系列文章的特色是详细讲述知识点的同时还会介绍如何在实际开发中应用,理论联系实际,目前《asp.net夜话》系列文章已在《asp.net夜话》作者博客http://blog.csdn.net/zhoufoxcn发表了11篇文章,得到了不少初学者和中级开发人员的好评(可以到《asp.net夜话》作者博客查看)。

    下载地址:Verycd  http://www.verycd.com/topics/2730883/

  • ASP.NET好书推荐

    最近要跟几个同学和一个老师开始做一个小型的电子商务网站了,老师说要用ASP.NET。。。额,我对这个还是一点也不懂,Google之,CSDN之,在网上找到了这么几本评价还算不错的书。

    第一本书建议看《ASP.NET揭秘(第二版)   》
    作者:[美]Stephen   Walther
    译者:汤涛
    出版社:中国电力出版社
    评语:不是很难,却是公认的最最好的书,本书是美国亚马逊网站同类书长期销售冠军,并受到微软ASP.NET小组项目经理Rob   Howard的大力推荐,中文版由中科院专家汤涛老师翻译,经典、权威是本书最好的诠释。本人看了52本.NET的书没有比这个好的。也不要以为看懂了就 水平怎么样了,早着呢!!!

    《ASP.NET网页制作教程—从基本语法学起》
    作者:王国荣
    出版社:华中科技大学出版社
    如果你是初学者(以前没用过其他脚本,如PHP),那么这本书很适合你,否则你可能感觉这本书太浅了,总的来说,很适合初学者!
    没有比这个更容易的书了。

    《ASP.NET   1.0入门经典—C#编程篇》
    作者:Chris   Goode等著   杨浩译出版社:清华大学出版社   评语:的确是针对初学者的一本好书。先不管内容深浅如何,我感觉书的内容能让人读懂才是最重要的。如果出的书谁都读不懂,即使内容再深又有何用?让本书我 的感觉是让人读起来特别舒服,学起来心里很踏实。对于基本概念讲得很清楚,而且翻译得比较通顺,是.NET入门的好书。

    《ASP.NET数据库入门经典—C#编程篇   》

    作者:John   Kauffman等著   张哲峰   黄翔宇译出版社:清华大学出版社   评语:Web编程一定要和数据打交道,虽然上一本提到了一些,但是更完备的知识就要在这本书上吸取了!

    《Programming ASP.NET中文版(第3版)》ASP.NET基础

    点评:经典中的经典,全球经典,五年三版,权威著作,这本书是最最基础的ASP.NET入门书,讲的非常全涵盖所有基本面,每一个控件都细细说明,非常易 懂,不过本书讲的难免有点杂,初学者看了难免云里雾里所以要下一本书提纲挈领,此书非看不可。

    《ASP.NET 2.0经典教程–C#篇》ASP.NET基础

    点评:经典,和上一本结合起来最好,本书讲大的方面,看了能让人明白asp.net分那几个步骤,不过唯一的缺陷就是不细,上一本正好补充,此书非看不 可。

    清华大学出版社的asp.net从入门到精通,asp.net技术内幕 asp.net高级编程

    作为菜鸟,我暂时找到了这些,今天从图书馆借了本《ASP.NET 2.0网络编程 从基础到实践》,电子工业出版社,还不知道里面的内容具体怎样。。。