我使用了 Asp.net 4.0 路由技术来实现友好的 url。我在 global.asax 中使用了以下代码。
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
void RegisterRoutes(RouteCollection routes)
{
string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection sqlCon = new SqlConnection(connectionstring);
SqlCommand sqlCmd = new SqlCommand("Sch_Sp_GetRegisterRoutes", sqlCon);
sqlCmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sda = new SqlDataAdapter(sqlCmd);
DataTable dt = new DataTable();
try
{
sda.Fill(dt);
}
catch (Exception ex)
{
}
finally
{
sqlCon.Close();
}
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
try
{
routes.MapPageRoute(dr["Menuname"].ToString().Replace(" ",string.Empty),
dr["URL"].ToString(),
"~/" + dr["Pagename"].ToString());
}
catch (Exception exx)
{
}
}
}
}
我在数据库中的 url 就像 About-Us 和 Pagename 就像 MyFolder/Aboutus.aspx。在我的本地机器上它可以工作,但是当我将它部署在我的服务器(iis 7 版本和 windows server 2008)上时,它显示错误' 404 - 找不到文件或目录。您要查找的资源可能已被删除、更改名称或暂时不可用'我将其称为 resolveUrl("~/About-Us")。请帮我....