我在ASP.NET 4应用程序中实现了URL映射,但是我的某些内容出现问题。网页表单中的Url映射 - 允许使用问号和连字符
我们的一些产品有一个连字符“ - ”或问号“?”在他们中。这不是一个选项。产品名称可能是“我的产品 - 对您有好处?”。
我们使用两种定制的方法,MakeUrlSeoReady和MakeUrlNonSeoReady。我们替换这样的空间:替换(“”,“ - ”),因为这是最适合搜索引擎优化的解决方案。但是,我们也需要使用问号和连字符来完成这项工作。
我们使用MakeUrlSeoReady/NonReady方法的原因是能够显示“真实”名称。
目前映射定义如下:
routes.MapPageRoute("Produkt visning",
"artikler/{Categoryname}/{SubCategoryname}/{ProductName}",
"~/SingleProduct.aspx");
所以,我做的是我取决于产品名称检索产品。我使用两种方法我已经创建:
public static string MakeUrlNonSeoReady(string text)
{
return text.ToLower().
Replace("oe", "ø").
Replace("aa", "å").
Replace("ae", "æ").
Replace("-", " ");
}
public static string MakeUrlSeoReady(string text)
{
return text.ToLower().
Replace("ø", "oe").
Replace("å", "aa").
Replace("æ", "ae").
Replace(" ", "-");
}
所以我用下面的字符串从我们的数据库中获得SingleProduct.aspx页:
string categoryName = HelperFunctions.MakeUrlNonSeoReady(Page.RouteData.Values["ProductName"]);
但是这当然不行。所以,任何帮助真的很感激:-)
一个 “?”在一个URL中指定一个查询字符串。你无法改变IIS处理分析请求的方式。 – 2012-02-11 15:55:51