路由的简单应用

//Default.aspx 前台代码(运行)

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
    <style type="text/css">
    #HyperLink1 img
    {
        border-style:none;
        width:100px;
    }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <!--文本框中输入值 -->
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="GO" />
<br />
<!--GridView中(使用超链接) -->
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# string.Format("{0}/Details.html",eval_r("Code")) %>'>详细</asp:HyperLink>
    <%--<%# eval_r("Code","<a href='Details.jsp/{0}'>查看</a>") %>--%>
    <%--<a href="Details/id=<%# eval_r("Code") %>">详看</a>--%>
    </div>
    </form>
</body>
</html>


//Default.aspx.cs 后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        //Response.Redirect("~/Default2.aspx?id="+TextBox1.Text);
        Response.Redirect(string.Format("~/Default2/{0}", TextBox1.Text));
    }
 
}

//Global.asax 路由

<%@ Application Language="C#" %>
<%@ Import Namespace="System.Web.Routing" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e)
    {
        //在应用程序启动时运行的代码
//导入System.Web.Routing命名空间
        RouteTable.Routes.MapPageRoute(
            "name1",
            "Default2/{code}",//虚拟地址
            "~/Default2.aspx"//真实地址
            );
    }
   
    void Application_End(object sender, EventArgs e)
    {
        //在应用程序关闭时运行的代码

    }
       
    void Application_Error(object sender, EventArgs e)
    {
        //在出现未处理的错误时运行的代码

    }

    void Session_Start(object sender, EventArgs e)
    {
        //在新会话启动时运行的代码

    }

    void Session_End(object sender, EventArgs e)
    {
        //在会话结束时运行的代码。
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式
        //设置为 StateServer 或 SQLServer,则不会引发该事件。

    }
      
</script>


//Default2.aspx 前台代码(要链接的Web窗体)

<%@ Page Language="C#" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>

//default2.aspx.cs 后台代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
//接收参数
        Label1.Text = RouteData.Values["code"].ToString();
    }
}

你可能感兴趣的:(路由 例)