0

ASP.NET MVC プロジェクトに取り組んでいます。次のようなルートをマップできる必要があります。

http://www.mysite.com/Products/テニスシューズ

URL の「Action」部分 (Tennis-Shoes) は、可能性のリストの 1 つになる可能性があります。それぞれのコントローラーで個別の Action メソッドを作成する必要はありません。すべてを 1 つにマップしたいです。アクションメソッドとそこから表示されるViewを処理していきます。

ルートマッピングを追加することで、これがうまく機能しています。ただし、ハイフンが必要な「アクション」がいくつかあります。ASP.NET MVC ルーティングは、アクションに送信する前にハイフンを解析しようとしています。独自のカスタム ルート ハンドラを作成しようとしましたが、呼び出されることさえありません。ハイフンがあると、すべてのルートが無視されます。カスタム ルートも無視されます。

助言がありますか?ハイフン状況の詳細は? ありがとうございます。

4

1 に答える 1

2

URL を見て説明を読むとTennis-Shoes、あなたの例ではアクションではなく、Route パラメーターのように聞こえます。次のコントローラーがあるとしましょう

public class ProductsController : Controller
{
    public ActionResult Details(string product)
    {
        // do something interesting based on product...

        return View(product);
    }
}

Detailsアクションは、次の行に沿って任意の URL を処理します。

http://www.mysite.com/Products/{product}

次のルートを使用して

routes.MapRoute(
   null,
   "Products/{product}",
   new
   {
       controller = "Products", 
       action = "Details"
   });

product文字列に基づいて別のビューを使用することもできますが、これは基本的な例にすぎません。

于 2013-01-24T23:39:11.357 に答える