ASP.NET URLの書き換えとページリンクの構築
-
01-07-2019 - |
質問
そこでこの投稿 ASP.NET アプリケーションに URL 書き換えを実際に実装して「フレンドリーな URL」を取得する方法について説明しました。これは完璧に機能し、ユーザーを特定のページに誘導するのに最適ですが、参照されたツールのいずれかを使用するときにコード内に「フレンドリー」URL を作成するための良い解決策を知っている人はいますか?
たとえば、書き換えルールが存在するときに asp.net コントロール内のリンクを ~/mypage.aspx?product=12 としてリストすると、2 つの異なる方法でコンテンツにリンクすることになるため、問題が発生します。
私は、リライターからフレンドリーな URL コードを取得する「NavigateUrl」メソッドがある DotNetNuke と FriendlyUrl の使用には慣れていますが、UrlRewriting.net または他のソリューションでこれを行う方法の例が見つかりません。そこには。
理想的には、このようなものを取得できるようにしたいと思います。
string friendlyUrl = GetFriendlyUrl("~/MyUnfriendlyPage.aspx?myid=13");
編集: サイト内のすべてのページに実装する必要があるものではなく、逆方向のルールに一致する可能性のある一般的なソリューションを探しています。
解決
ルーティングは書き換えとは異なります。この手法を実装するには、ページに若干の変更が必要になります (つまり、クエリ文字列パラメータにアクセスするコードを変更する必要があります) が、定義したルートに基づいてリンクを生成できます。これは ASP.NET MVC によって使用されますが、任意の ASP.NET アプリケーションで使用できます。
ルーティングは .Net 3.5 SP1 の一部です
他のヒント
次のように、各ページのメソッドを含む UrlBuilder クラスを作成します。
public class UrlBuilder
{
public static string BuildProductUrl(int id)
{
if (true) // replace with logic to determine if URL rewriting is enabled
{
return string.Format("~/Product/{0}", id);
}
else
{
return string.Format("~/product.aspx?id={0}", id);
}
}
}