Url 路由使用 ASP.NET
Url Routing using ASP.NET
我有:
<a href='News.aspx?Id=<%#Eval("Id") %>'>Read more</a>
我的查询字符串设置如下:
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("Select * from Zaebancii where Id=@id", con);
SqlDataAdapter apd = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
cmd.Parameters.AddWithValue("@id", Page.Request.QueryString["Id"].ToString());
con.Open();
apd.Fill(ds, "Zaebancii");
cmd.ExecuteNonQuery();
con.Close();
FormView1.DataSource = ds;
FormView1.DataBind();
如何 url 重写,使 link 成为 news/{Id}
例如news/4/
显示4的ID post 谢谢
将这些代码放入您的 global.asax
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("", "news/{id}", "~/News.aspx");
}
你可以这样获取id;
RouteData.Values["id"];
您需要使用路由引擎。在您的 global.asax 中,您可以注册以下代码,但实际上,为此使用单独的 class。
RouteTable.Routes.MapPageRoute(routeName: "News", routeUrl: "news/{id}", physicalFile: "~/news.aspx", checkPhysicalUrlAccess: false, defaults: null, constraints: new RouteValueDictionary() { "id", "^\d*$" });
要生成 link,您可以使用下面的 id = 1 例如:
string href = RouteTable.Routes.GetVirtualPath(requestContext: null, name: "News", values = new RouteValueDictionary() { "id": "1" }).VirtualPath;
我有:
<a href='News.aspx?Id=<%#Eval("Id") %>'>Read more</a>
我的查询字符串设置如下:
SqlConnection con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("Select * from Zaebancii where Id=@id", con);
SqlDataAdapter apd = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
cmd.Parameters.AddWithValue("@id", Page.Request.QueryString["Id"].ToString());
con.Open();
apd.Fill(ds, "Zaebancii");
cmd.ExecuteNonQuery();
con.Close();
FormView1.DataSource = ds;
FormView1.DataBind();
如何 url 重写,使 link 成为 news/{Id}
例如news/4/
显示4的ID post 谢谢
将这些代码放入您的 global.asax
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("", "news/{id}", "~/News.aspx");
}
你可以这样获取id;
RouteData.Values["id"];
您需要使用路由引擎。在您的 global.asax 中,您可以注册以下代码,但实际上,为此使用单独的 class。
RouteTable.Routes.MapPageRoute(routeName: "News", routeUrl: "news/{id}", physicalFile: "~/news.aspx", checkPhysicalUrlAccess: false, defaults: null, constraints: new RouteValueDictionary() { "id", "^\d*$" });
要生成 link,您可以使用下面的 id = 1 例如:
string href = RouteTable.Routes.GetVirtualPath(requestContext: null, name: "News", values = new RouteValueDictionary() { "id": "1" }).VirtualPath;