質問

そこでこの投稿 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");

編集: サイト内のすべてのページに実装する必要があるものではなく、逆方向のルールに一致する可能性のある一般的なソリューションを探しています。

役に立ちましたか?

解決

見る システム.Web.ルーティング

ルーティングは書き換えとは異なります。この手法を実装するには、ページに若干の変更が必要になります (つまり、クエリ文字列パラメータにアクセスするコードを変更する必要があります) が、定義したルートに基づいてリンクを生成できます。これは 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);
        }
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top