|
|
|
ASP.NET 4.0 URL ROUTING ทำง่ายๆ ก้อจริงแต่มีปัญหาแปลกๆ ค่ะ พอจะมีใครลองเอารันบน web server ได้ป่าวคะ |
|
|
|
|
|
|
|
รอเก็บความรู้ใหม่
|
|
|
|
|
Date :
2010-10-27 22:49:51 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เริ่มด้วย new web site ขึ้นมา
แล้วก็เลือก ASP.NET Empty Web Site มาเลย อย่าลืมเลือก .Net framework 4.0 ด้วยนะคะ
ส่วนภาษาจะ c# หรือ vb.net ยังไงก็ได้เพราะมี code ไม่กี่บรรทัด
ที่ส่วน Web location เลือกตามสะดวก แต่ให้ใช้ folder ที่เป็น site ว่า SimpleUrlRoute ค่ะ
ทีนี้ใน solution ของเราจะมีแค่ web.config แบบนี้
เพื่อความกระชับขอข้ามไปเลยนะคะ
ให้ add item เข้าอีก 3 item คือ 1.global.asax 2.default.aspx 3.routepage.aspx
ตามนี้
|
ประวัติการแก้ไข 2010-10-27 23:50:01
|
|
|
|
Date :
2010-10-27 23:28:51 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขั้นต่อมาเราจะมาเขียน code เท่าที่จำเป็นกันนะคะ
เริ่มด้วยที่ Global.ASAX อันเป็นหัวใจสำคัญเลย มี code ที่จำเป็นๆ แค่นี้
และใน DEFAULT.ASPX และ ROUTEPAGE.ASPX
จะยังไม่เขียน code อะไรมากมายนะคะ แค่ใส่ control เข้าไปก็พอดังนี้ค่ะ
พอครบแล้ว สั่ง RUN ซึ่งจะมี dialog มาถามก็กด ok ไป
|
ประวัติการแก้ไข 2010-10-27 23:58:02 2010-10-27 23:59:01
|
|
|
|
Date :
2010-10-27 23:49:25 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผลรันจะเป็นแบบนี้ ( อ้อ set ให้ default.aspx เป็น startup page ด้วยค่ะ )
และพอลอง click ที่ link here ด้านล่างจะได้ผลลัพธ์แบบนี้ สังเกตุที่ address bar นะคะ url ที่ได้จะเป็น SEO Url ที่ต้องการแล้ว
เสร็จแล้วค่ะ จะเห็นว่าเขียน code น้อยมาก ส่วน parameter ของการ route ใช้ร่วมกับ regex และ dictionary เพื่อเพิ่มประสิทธิภาพ
ได้จาก overload ของ method MapPageRoute จากระดับ basic ไปจน advance ได้ค่ะ
ส่วนการดึงค่า parameter ออกมาลองศึกษาเพิ่มดูนะคะ จะคล้ายกับการดึงค่าจาก querystring ค่ะ
ปัญหา
นั่งงมมาทั้งวันว่าทำไมเรา route กะเค้าไม่ได้น้อแก้หลายแก้จนสรุปได้ว่าเกิดจากชื่อ project นี่เอง
เพราะที่ใช้คือ General.KM.Proud.01.00.20 ลอง copy code เขามาก้อแล้วแก้ก้อแก้แล้วยังไงก้อ error
แต่พอลอง New Web Site ใช้ชื่อเป็น Test เจ๋ย ๆ เอ๋า route ได้ code เดียวกันเป๊ะๆ
นี่ test ที่ localhost นะคะเลยสงสัยถ้าเกิดเอาไป install ที่ web server และมี domain name เรียบร้อย
อย่าง www.thaicreate.com นี่มันยังจะรันได้มั้ย
สันนิษฐานว่าน่าจะได้แต่ยังไม่ยืนยันค่ะ พอจะมีครัยลองได้ปะคะ
ขอบคุณค่ะ
ปล.
General.KM.Proud.01.00.20 IIS หรือไม่ก็ Url Route คงเข้าใจว่าเป็น subdomain
แต่ก้อยังสงสัยอะค่ะ กับ domain จริงๆ ยังจะรันได้ป่าว
|
ประวัติการแก้ไข 2010-10-28 00:55:31
|
|
|
|
Date :
2010-10-28 00:20:23 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+1 ก่อนเลย ไม่ต้องเริ่มอ่านเอง เจ๋งไปเลย
|
|
|
|
|
Date :
2010-10-28 00:23:44 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับ เยียมจริง ๆ
|
|
|
|
|
Date :
2010-10-28 06:30:50 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากรู้ว่า mr. Stupid gurl เวลาเขียนคำสั่ง insert ข้อมูลลง database ทำไงหรือครับ
ใช้ tool อัตโนมัติ หรือว่าเขียน query เองคล้ายๆ กับ mr. win
|
|
|
|
|
Date :
2010-10-28 13:24:33 |
By :
.net 2008 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อย่างงี้นิเอง เจ๋งๆ
|
|
|
|
|
Date :
2010-10-28 13:47:06 |
By :
.net 2008 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อะฮิๆ
เดี๋ยวว่างๆ จะมาเขียนมั่ง แต่ตอนนี้วุ่นวายมาก
|
|
|
|
|
Date :
2010-10-29 08:29:02 |
By :
tungman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่มเติมละกันนะคะจะได้จบเรื่อง Basic URL Routing นี่เลย
Code (C#)
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteTable.Routes.MapPageRoute("myFirstRoute"
, "Route/{Parameter}", "~/RoutePage.Aspx");
RouteTable.Routes.MapPageRoute("mySecondRoute"
, "RouteData.Aspx", "~/404Error.Aspx");
RouteTable.Routes.MapPageRoute("myThirdRoute"
, "Route/{Parameter}/{locale}", "~/RoutePage.Aspx");
}
Code (ASP)
<%@ Page Language="C#" AutoEventWireup="true" 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>
</head>
<body>
<form id="form1" runat="server">
<div>
THIS IS HOME PAGE!!
<br />
<a href="RoutePage.aspx?Target=1234">Direct link to routepage.aspx</a><br />
Url Route
<asp:HyperLink ID="HyperLink1" NavigateUrl="~/ROUTE/1234" runat="server">Here</asp:HyperLink>
or <a href="ROUTE/567890/BKK">Here</a><br />
<asp:HyperLink ID="HyperLink2" NavigateUrl="~/RouteData.Aspx" runat="server">Prevent Route</asp:HyperLink>
</div>
</form>
</body>
</html>
และก้อที่ RoutePage.Aspx กะ RoutePage.Aspx.Cs
Code (ASP)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RoutePage.aspx.cs" Inherits="RoutePage" %>
<!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>
ROUTE PAGE HERE !! <br />
<asp:HyperLink ID="HyperLink1" NavigateUrl="~/Default.aspx" runat="server">Home</asp:HyperLink><br />
<asp:Label ID="LabelParameter" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class RoutePage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string tempStr = string.Format("Total parameter :{0} <br />", Page.RouteData.Values.Count.ToString());
if (Page.RouteData.Values.Count > 0)
{
foreach (string keyStr in Page.RouteData.Values.Keys)
{
tempStr += keyStr + " = " + Page.RouteData.Values[keyStr].ToString() + " <br />";
}
}
tempStr += "<hr />";
Response.Write(tempStr);
}
}
}
จาก bug ของ Url Routing มีผลกระทบให้ทำ sub version control สะริ้วส์ >,<
เพราะปกติจะตั้งชื่อ project ให้สื่อความหมายไปเลย รวมถึง version ต่างๆ ด้วยค่ะ
|
ประวัติการแก้ไข 2010-10-29 09:48:46
|
|
|
|
Date :
2010-10-29 09:24:36 |
By :
blurEyes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วันนี้มีโอกาศได้เขียนตามบทความนี้ครับ ขอบคุณน้องหม่วยจริง ๆ
|
|
|
|
|
Date :
2011-03-16 06:36:42 |
By :
webmaster |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีปัญหาไม่จบค่ะ บาง host ถึงจะบอกว่า support .net framework 4.0 แต่ใช้ url routing ไม่ได้ก้อมีค่ะ
เพื่อตัดปัญหาเลยเขียน 404 url rewriting เอาเองค่ะ
|
|
|
|
|
Date :
2011-03-16 14:06:36 |
By :
สาวเอ๋อ เอ๋อเหรอ เอ๋อมากมาย |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บ้านมาก
|
|
|
|
|
Date :
2011-06-09 14:29:25 |
By :
บ้านๆ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จะพยามยามหันVB
|
|
|
|
|
Date :
2011-06-14 15:42:48 |
By :
ereanor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ สำหรับความรู้
ปล. ใช้หน้าจอดำๆ แบบนี้ไม่ปวดตาหรอครับ รู้สึกว่าเคยอ่านเจอว่า ใช้ พื้นหลังสีขาวดีกว่า
เอ๊ะ หรือยังไง ครับ
|
|
|
|
|
Date :
2011-06-14 16:15:06 |
By :
13crowns |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เคยเทียบกันแล้ว ดูสีดำนานๆ สบายตากว่าค่ะ
คงเป็นความชอบส่วนบุคคลมั้งคะ
รู้สึกจะเป็นตัว config สีที่ อจ. ให้มามั้งคะ
ไม่ได้ทำเองหรอกค่ะ
|
|
|
|
|
Date :
2011-06-15 09:13:42 |
By :
เอ๋อน้อย หลานย่าสุ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่เครื่องไม่มีปัญหาครับ แต่ไม่สามารถ Run บน server จริงได้ ปวด head จริงๆ
|
|
|
|
|
Date :
2012-04-04 14:04:54 |
By :
titipong |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณสำหรับบทความครับ
ผมเจอปัญหาเหมือนที่บอกเลย คือ ต้องสร้าง Project ใหม่ ถึงใช้ได้ นำไปใช้กับโปรเจ็คเดิมใช้ไม่ได้แฮะ งงเต๊ก
|
|
|
|
|
Date :
2013-03-01 11:43:22 |
By :
offduiclub |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|