1

問題

いくつかの記事が掲載されたWebサイトがあります。記事は、単一ページに結果を書き込むデータベースを使用してアクセスされます。特定の記事にアクセスする場合は、article-idが必要で、次のページにアクセスするだけで済みますhttp://www.mysite/Articles.aspx?a={article-id}

これは素晴らしいですが、実際には友好的ではなく、スケーラブルではありません。私がやりたいのは、フォーム内のすべてのURLをhttp://www.mysite/articles/{article-id}ページにリダイレクトすることですhttp://www.mysite/Articles.aspx?a={article-id}

Web.Config使用して設定を使用できることは知ってurlMappingsいますが、そこに正規表現を挿入する方法がわかりません。

いくつかのメモ

簡単な翻訳ツールが欲しいと考えてください。既存のページを編集したくありません。このソリューションは、アプリケーションコンポーネントに対して可能な限り透過的である必要があります。

ソリューションに到達するためのベストプラクティスは何ですか?

4

2 に答える 2

3

私はあなたが使うべきだと思います:

  1. ASP.NETルーティング

例えば。:

protected void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapPageRoute("Articles",
        "articles/{article-id}/",
        "~/Articles.aspx");
}

&「Articles.aspx.cs」では、次を使用して「article-id」を取得できます。

string article-id = Page.RouteData.Values["article-id"] as string;
  1. URL書き換えモジュールの使用

ここに画像の説明を入力してください


  1. urlrewriter.net

ここに画像の説明を入力してください

于 2012-09-28T08:14:37.170 に答える
1

詳細:

http://www.mysite/Articles?a = {article-id}で問題ありませんか?

そうであれば、MicrosoftフレンドリーなURLが適しています。既存の機能を変更する必要はありません。パッケージを追加してから、Global.asaxファイルに1行追加するだけです。また、他のすべてのURLはクリーンです(つまり、 http: //www.mysite/Articles、http ://www.mysite/About)。Webサイト/フォームでは機能しますが、Webページ(つまりWeb Matrix)では機能しません。

解決:

  1. ソリューションエクスプローラーで、Webサイトを右クリックし、[Nugetパッケージの管理]を選択します。
  2. 「安定のみ」と書かれたドロップダウンを押して、「プレリリースを含める」を選択します(プレリリースにあります)
  3. 検索ボックスに「Microsoft.AspNet.FriendlyUrls」と入力します
  4. 「インストール」を選択します
  5. グローバルアプリケーションクラス「Global.asax」を追加します
  6. Application_Startメソッドに、次の行を追加します

    RouteConfig.RegisterRoutes(System.Web.Routing.RouteTable.Routes);

  7. これで、FriendlyURLが作成されます

注: Webサイトを使用している場合、それを機能させるには次のファイルを削除する必要があります(Webフォームで正常に機能します。安定したリリースになったら、これらのファイルを削除する必要はないと確信しています)

  • Site.Mobile.Master
  • Site.Mobile.Master.designer.cs
  • ViewSwitcher.ascx
  • ViewSwitcher.ascx.designer.cs


詳細情報へのリンク:

MicrosoftのFriendlyURLパッケージに関する情報

于 2012-10-30T04:39:24.827 に答える