ASP.NET 路由完结页面静态化(附在线德姆o和Source)

譬如:当用户请求Default.aspx页面,自动跳重定向到index.html页面

概念:各样{}就是四个代码块。

2. 达成请求.aspx页面时自动跳转到对应的静态映射页面。

本种类是为了求学ios做准备的,也能看做c语言入门的教程看看。

三.  在IIS 7下设置站点

下边包车型大巴安装很关键,因为上边在VS自带的web服务器中就算跑通了,但IIS
7下是运作不经过的(IIS 6下的安装很不难,本文的在线德姆o是运作在IIS
6下的)

  char c=’a’;

在线Demo:http://csdemo.jileiba.com/UrlRouting/

一 、顺序结构:自上而下依次执行。

那是贰个小体系的篇章,这一篇作品将详细表明并实现第二点。

c语言的代码块:

1.
完毕页面静态化,页面中的链接都用.html来表示,但各类.html实际都映射了二个.aspx页面。

    %c:填入char类型的多少,例如printf(“数字1=%c,数字2=%c”,‘1’,‘2’);

3.  配置web.config

网站就算能运维,可是点击Home或About链接时会冒出404张冠李戴。

起名 1

i.率先保险在设置IIS时你早已勾选了HTTP Reirection

设若没有设置这几个功能,根据如下设置再配置3遍IIS

Control Panel –> Progams –> Turn off windows features –>
World wide web Services –> Common HTTP Features –> HTTP
Redirection

ii.
修改web.config文件,在webserver中注册RoutingHandler和RoutingModule

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="UrlRoutingModule"/>
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, 
                                          System.Web, 
                                          Version=4.0.0.0, 
                                          Culture=neutral, 
                                          PublicKeyToken=b03f5f7f11d50a3a" />
    </modules>
    <handlers>
      <add name="UrlRoutingHandler" 
                                  preCondition="integratedMode" 
                                  verb="*" path="UrlRouting.axd"
                                  type="System.Web.HttpForbiddenHandler, System.Web,
                                        Version=2.0.0.0, Culture=neutral,
                                        PublicKeyToken=b03f5f7f11d50a3a"/>
    </handlers>
  </system.webServer>

</configuration>

留意: 要是您使用的是ASP.NET 3.5 Routing或行使IIS
6,web.config配置会不同。

iii.担保web站点的行使程序池选用的是合两为一格局,因为ASP.NET 4.0
Routing并不协助经典情势

起名 2

OK,仿佛有所的该配置的地点都布置了,那么再去点击Index.html或About.html链接试试吧。

起名 3

设若前几天去做客Login.html页面,照旧会拿走贰个401.3的一无是处,更改Account目录下的web.config文件:

<?xml version="1.0"?>
<configuration>

  <location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

  <system.web>
    <!--<authorization>
      <deny users="?"/>
    </authorization>-->
  </system.web>

</configuration>

借使您不供给以此web.config文件,直接删掉也得以。

      有无符号的变量:

落实以上要点,必要运用ASP.NET Url Routing、HttpHandler和HttpModule技术。

      ② 、只可以用下划线、字母、澳元符号($)初始;

正文已经同步至笔者的私有博客站点:积累吧|ASP.NET
路由达成页面静态化

  浮点型包含单精度型和双精度型。

比如说:当用户请求index.html页面时,实际请求的是Default.aspx页面,index.html的情理路径在网站中并不设有。

 

贯彻静态化的多个目的:

           输出该种类型的变量:short和int都以直接%u,例如:printf(“%u
\n”,12);long类型是printf(“%lu \n”,12);

5. 在Global.asax文件中注册路由

先来个大致的完结:

using System;
using System.IO;
using System.Web.Routing;
using Routing_Static_Page_Demo.WebHandler;

namespace Routing_Static_Page_Demo
{
    public class Global : System.Web.HttpApplication
    {

        void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes();
        }

        /// <summary>
        /// 注册路由
        /// </summary>
        private void RegisterRoutes()
        {

            //将Index.html请求映射为Default.aspx
            RouteTable.Routes.Add("Default",
                                  new Route("Index.html",
                                            new CustomRouteHandler("~/Default.aspx")));

            // 将About.html请求映射为About.aspx
            RouteTable.Routes.Add("About",
                                  new Route("About.html",
                                            new CustomRouteHandler("~/About.aspx")));

            // 将Account/Login.html请求映射为/Account/Login.aspx
            RouteTable.Routes.Add("Login",
                                  new Route("Account/Login.html",
                                            new CustomRouteHandler("~/Account/Login.aspx")));
        }
    }
}

在VS中央直机关接运营站点(VS自带的WebDev服务器),点击那些链接都能够不奇怪访问。

  一般占8个字节(64位)

四. 更改RegisterRoutes方法

上边提供的注册路由的艺术属于硬编码,须要为每个.aspx页面钦赐映射路由。Account目录下还有局地.aspx文件,如若扩充其余目录也存放.aspx页面,为了让各类页面都静态化,RegisterRoutes方法将会是产生不少双重代码。

using System;
using System.IO;
using System.Web.Routing;
using Routing_Static_Page_Demo.WebHandler;

namespace Routing_Static_Page_Demo
{
    public class Global : System.Web.HttpApplication
    {

        void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes();
        }

        /// <summary>
        /// 注册路由
        /// </summary>
        private void RegisterRoutes()
        {

            //将Index.html请求映射为Default.aspx
            RouteTable.Routes.Add("Default",
                                  new Route("Index.html",
                                            new CustomRouteHandler("~/Default.aspx")));

            // 将About.html请求映射为About.aspx
            RouteTable.Routes.Add("About",
                                  new Route("About.html",
                                            new CustomRouteHandler("~/About.aspx")));

            // 遍历页面存放目录,为每个.aspx页面添加路由映射
            foreach (string mapPth in _pageMapPath)
            {
                string path = Server.MapPath(mapPth);
                var directoryInfo = new DirectoryInfo(path);
                foreach (FileInfo f in directoryInfo.GetFiles())
                {
                    string fileName = f.Name;
                    if (fileName.EndsWith(".aspx"))
                    {
                        string routeName = fileName.Substring(0, fileName.Length - 5);
                        string url = string.Concat(mapPth.Substring(2), routeName, ".html");
                        RouteTable.Routes.Add(routeName,
                                              new Route(url,
                                                        new CustomRouteHandler(string.Concat(mapPth, fileName))));
                    }
                }
            }

        }

        // 页面存放目录
        private readonly string[] _pageMapPath = {@"~/Account/"};
    }
}

如上代码就能兑现为各类.aspx页面注册路由完结静态化。

代码块中能够定义代码块外中已存在的变量。

一 、项目创建

           一般定义的数字类型的变量都以有标志的变量,假使想要定义无符号的变量,须要用unsigned关键字,

3. 将网站添加到IIS6或IIS7中

起名 4

暗许的ASP.NET Web
Application已经为我们提供了不少页面,小编就在上边包车型地铁例证中将它们静态化吧。

1.2.2双精度型

2. 创建web.config文件

ASP.NET
Membership在那边运用不到,所以生成的web.config配置没有用处,删掉它并再次成立3个新的web.config文件

<?xml version="1.0"?>
<configuration>

    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>

</configuration>

printf函数:

4. 添加自定义的IRouteHandler实现

using System.Web;
using System.Web.Compilation;
using System.Web.Routing;
using System.Web.UI;

namespace Routing_Static_Page_Demo.WebHandler
{
    public class CustomRouteHandler : IRouteHandler
    {
        /// <summary>
        /// 虚拟路径
        /// </summary>
        public string VirtualPath { get; private set; }

        public CustomRouteHandler(string virtualPath)
        {
            this.VirtualPath = virtualPath;
        }

        /// <summary>
        /// 返回实际请求页
        /// </summary>
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            var page = BuildManager.CreateInstanceFromVirtualPath(VirtualPath, typeof(Page)) as IHttpHandler;
            return page;
        }
    }
}

      一 、起名要有含义;

3.
自定义404页面包车型地铁贯彻,当呼吁的路子既不在映射表中,也不在网站的虚构路径中时,它将活动跳转到作者先行设定好的404页面。

   printf(“数字1=%d,数字2=%d”,10,20);//%d接下来会在一起解释。

1. 第①在IIS 7下运转该网站,晤面世上边包车型地铁荒谬。

起名 5

那是因为IIS对该Web站点目录没有读写权限。

在IIS下:右键站点 >  艾德it Permissions > Security > 艾德it >
Add > 输入IIS_IUSRS > Check Names > OK。

慎选甘休后,为IIS_IUS汉兰达S用户添加Full Control权限。

起名 6

起名 7

起名 8

           带着种首要字的变量只可以定义大于等于0的数字。

页面静态化最大的补益是便于SEO,固然是伪静态,搜索引擎也会觉得那是一个较为协调的Url。Url的和睦也在于其取名,为一篇描述北齐管农学的页面起名用ancient-literature.html当然比随便起的名字例如aa.html之流要团结。页面静态化并不意味着你早晚要用后缀名为.html或.htm的链接来显示你的页面,你一点一滴能够不用别样后缀名(就好像MVC一样),只要Url结构能够。

          /*

3. 将全部.aspx后缀的超链接更改为.html

Site.Master文件:

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
    <Items>
        <asp:MenuItem NavigateUrl="~/Index.html" Text="Home"/>
        <asp:MenuItem NavigateUrl="~/About.html" Text="About"/>
    </Items>
</asp:Menu>

Account文件夹ChangePassword.aspx文件:

<asp:ChangePassword ID="ChangeUserPassword" runat="server" CancelDestinationPageUrl="~/" EnableViewState="false" RenderOuterTable="false" 
         SuccessPageUrl="ChangePasswordSuccess.html">

本来以往那四个静态链接都访问不到,因为它们的情理地址不设有。

下边大家要做的便是:

1) 请求Index.html时实际请求的是Default.aspx

2) 请求About.html时实际请求的是About.aspx

3) 请求Account/Login.html时实际请求的是Account/Login.aspx

printf函数作为出口语句,首要的意义个正是出口用户想出口的说话。

1. 添加Routing引用

起名,由于此处要求运用ASP.NET的路由映射(从.NET
3.5上马诞生),所以要求在品种中添加System.Web.Routing引用。

起名 9

起名 10

  在种种分歧系统中,字符类型都占2个字节(伍人)。定义如下:

② 、页面静态化完毕

1.2浮点型

源代码下载:http://files.cnblogs.com/keepfool/UrlRouting.zip

1.1.2整形

2. 添加WebHandler和WebModule文件夹

那多少个公文夹分别用于存放IHttpHandler和IHttpModule。

    %lf:填入double类型的数码,例如printf(“数字1=%lf,数字2=%lf”,10,20);

2. 添加完该装置后,再运行叁次网站,只怕会现出上边包车型地铁失实。

起名 11

根据上边的步骤添加IUSSportage用户,为IUSLAND用户分配Read权限即可。

起名 12

重复运维网站,能够不荒谬访问页面了。

起名 13

c语言中常量:

1. 创建二个ASP.NET Web Application项目

起名 14

起名 15

  一般占4个字节(三九个人),最高位表示符号,0象征正数,1象征负数,取值范围是-2147483648~2147483647,在内部存款和储蓄器中的存款和储蓄顺序是身份在前、高位在后。

    %f:填入float类型的多少,例如printf(“数字1=%f,数字2=%f”,10f,20f);

    %d:填入int,short型的数码,例如printf(“数字1=%d,数字2=%d”,10,20);

      

1.1整型

//代码块
int  num = 1;
{
//就近原则
int num = 10;
printf("num = %d" ,num);//输出10
}
printf("num = %d" ,num);//输出1

      肆 、无法用关键字作为变量名。

  整形包罗短整型、整形和长整形。

short、int、long、char、float、double 那多少个相当重要字表示C
语言里的三种基本数据类型。

      ⑤ 、使用驼峰命名法(第三个单词的首字母小写,第三个单词开始首字母大写)。

    格式化输出内容:

  定义:用int关键字,举例如下:

  char c=97;

      定义二个常量的基本点字const,常量是概念后就不会且不可能改变的。

二 、分支组织:程序有选取的推行某段代码只怕不履行某段代码。

1.1.1短整形

            字面量表示法:直接写值。例如 1; 10.3; ‘a’;

三 、循环结构:程序循环的去实践某段代码。

比如:printf(“我是一个大帅哥~~”);

1.2.1单精度型

 

1.各样数据类型介绍

  浮点型,又称实型,也称单精度。一般占多少个字节(叁12人),

只顾:{}代码块中定义的变量,代码块外不能访问。原因:除了代码块之后,代码块内部定义的变量就会被回收。

           常规定义:类型 变量名 = 变量值;

1.3字符类型

  也足以用字符对应的ASCII码赋值,如下:

  int a=6;

  long a=10;

      叁 、mac环境下得以选用汉语,可是不推荐(标准c中是无法的)。

  float a=4.5;

1.1.3长整形

c语言中变量:

    %ld:填入long型的数量,例如printf(“数字1=%ld,数字2=%ld”,10,20);

      常量的概念:

c语言的程序结构:

c语言中变量的命名规范:

      printf(“要出口的字符串”,值列表);注意值与值时期要英文的逗号(,)隔离。

  double a=4.5;

            常规定义:const 类型 变量名 = 值;

  short a=1;

c语言中挑宛城数据类型:

      变量的定义:

   */

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图