ASP.NET 4アプリケーションでURLマッピングを実装しましたが、一部のコンテンツに問題があります。WebフォームでのUrlマッピング - 疑問符とハイフンを許可する
一部の製品にハイフン「 - 」または疑問符「?」があります。それらの中に。それを削除するオプションではありません。商品名は「マイプロダクト - お好きですか?」とすることができます。
我々は2つのカスタムメイドの方法、MakeUrlSeoReadyとMakeUrlNonSeoReadyを使用しています。私たちはこのようなスペースを置き換えます:Replace( ""、 " - ")、これは最もSEOに優しいソリューションです。しかし、疑問符とハイフンの両方でこの作業を行う必要もあります。
私たちが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"]);
しかし、もちろん、この意志が動作しない私は、私が作成した2つのメソッドを使用します。
A "?" URLにはクエリ文字列を指定します。 IISが要求の解析方法を変更することはできません。 –