2010-12-12 5 views
4

私はカテゴリと呼ばれるテーブルを持っています。ユーザーがカテゴリのリストからクリックして、そのカテゴリのすべてのオークションのリストをロードするようにします。ASP.Net MVC2でこのタイプのURLをどのように達成できますか?

十分に単純ですが、 RealEstate//オークション/衣服、および/オークション:これは、ようなURLを生成する

public ActionResult Cellphones() 
public ActionResult Electronics 
public ActionResult Clothes 
public ActionResult Cars 
public ActionResult RealEstate 

私は、のようなものを、すべてのカテゴリのアクションを作成することができます。正確に私が探しているもの。

問題は、これは手作業で修正する必要があることです。カテゴリを追加するときは、新しいアクションを手動で作成してから新しいビューを作成する必要があります。

これを行うより良い方法はありますか?

答えて

4

1つのActionResult作成だからあなたは、カテゴリ(ない個々の詳細)のリストを表示する際に

routes.MapRoute(
    "AuctionCategoryDetails", 
    "Auctions/{categoryName}", 
    new { controller = "Auction", action = "AuctionCategoryDetails" }); 

を。このようなリンクのリストを生成します

<% foreach (var category in Model.Categories) { %> 
    <%: Html.RouteLink("Category Details", "AuctionCategoryDetails", new { categoryName = category.CategoryName }); 
<% } %> 

<a href="/Auctions/Clothes">Category Details</a> 
<a href="/Auctions/RealEstate">Category Details</a> 

は何をお使いの後ということですか?

+0

スタック上の奇妙なコードのサンプルが最後のカップルの日を台無しにしてしまった。 – RPM1984

+1

はい、まさに!私はこれを私が探しているものに成形するでしょう。おかげで助けを集めました! :) –

+0

問題ありません。 :) – RPM1984

1

はい、URLルーティングと呼ばれます。カテゴリは、AuctionControllerアクションにマップします。このアクションは、URLの内容に基づいてカテゴリデータを動的に表示および表示します。

土地の基礎をカバーするチュートリアルthe ASP.NET MVC siteがあります。

public class AuctionController : Controller 
{ 
    public ActionResult AuctionCategoryDetails(string categoryName) 
    { 
     var model = repository.GetAuctionsForCategory(categoryName); 
     return View(model); 
    } 
} 

が続いつのルートを作成:

+0

こんにちは、このリンクを共有していただきありがとうございます。私は実際に私の目標を達成するためにルーティングを使う方法を本当に理解していないのではないかと思います。私はもう少しガイダンスのためにあなたを困らせることができますありがとうございました。 –

+2

@Serg:RPM1984のコード例は素晴らしいです。 – BoltClock

関連する問題