如何在ASP.NET
使用路由一個簡單的例子
- 創建空的Web應用程序
- 添加第一種形式 - Default.aspx的
- 添加第二種形式 - Second.aspx
- 添加第三個表單 - Third.aspx
添加到默認設置。ASPX 3個按鈕 - 第三頁
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Request.QueryString["Name"]);
}
上
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Second.aspx");
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("Third.aspx?Name=Pants");
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("Third.aspx?Name=Shoes");
}
閱讀查詢字符串現在,如果你運行程序,你將能夠瀏覽到第二和第三種形式。 這是過去的樣子。 讓我們添加路由。
使用System.Web.Routing添加新項目 - Global.aspx ;
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute(
"HomeRoute",
"Home",
"~/Default.aspx"
);
routes.MapPageRoute(
"SecondRoute",
"Second",
"~/Second.aspx"
);
routes.MapPageRoute(
"ThirdRoute",
"Third/{Name}",
"~/Third.aspx"
);
}
Default.aspx中修改 保護無效的button1_Click(對象發件人,EventArgs的) { //的Response.Redirect( 「Second.aspx」); Response.Redirect(GetRouteUrl(「SecondRoute」,null)); }在third.aspx
protected void Page_Load(object sender, EventArgs e)
{
//Response.Write(Request.QueryString["Name"]);
Response.Write(RouteData.Values["Name"]);
}
運行程序
protected void Button2_Click(object sender, EventArgs e)
{
//Response.Redirect("Third.aspx?Name=Pants");
Response.Redirect(GetRouteUrl("ThirdRoute", new {Name = "Pants"}));
}
protected void Button3_Click(object sender, EventArgs e)
{
// Response.Redirect("Third.aspx?Name=Shoes");
Response.Redirect(GetRouteUrl("ThirdRoute", new { Name = "Shoes" }));
}
修改頁面加載,請注意,URL看起來清爽多了 - 有沒有文件擴展它(Second.aspx成爲第二個)
要傳遞多於一個參數
添加新的按鈕,用下面的代碼的Default.aspx:
protected void Button4_Click(object sender, EventArgs e)
{
Response.Redirect(GetRouteUrl("FourthRoute", new { Name = "Shoes" , Gender = "Male"}));
}
添加以下代碼到Global.asax中
routes.MapPageRoute(
"FourthRoute",
"Fourth/{Name}-{Gender}",
"~/Fourth.aspx"
);
創建Fourth.aspx頁面具有以下頁面加載:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Name is: " + RouteData.Values["Name"] + " and Gender is " + RouteData.Values["Gender"]);
}
請標記url-routing到您的文章 – Armstrongest 2008-11-11 01:29:11