2

オプションのrouteValueを条件付きで設定する方法を見つけようとしています。

私は持っています

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex) }) %>

訪問者が「カテゴリ」をクリックすると、そのカテゴリの商品のみが表示されますが、「カテゴリ」がない場合は、すべての商品が表示されます。

これらの2つのURLは有効です。

/製品/ページ

/ Products / Page?category = cars

RouteLinkはポケットベルにあるので、ページ間でカテゴリを保持するために、ポケットベルのリンクでカテゴリパラメータを渡すことができると思いました。ただし、カテゴリが選択されていない場合とカテゴリが選択されている場合をどのように処理するかはわかりません。

私はこれができることを知っています:

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=cars }) %>

しかし、厄介なifステートメントを作成せずに両方のケースを処理することは可能ですか?

4

2 に答える 2

3

これは単なるアイデアですが、空のカテゴリパラメータを渡すことはできませんか?

<%= Html.RouteLink("<<<","Products",new { page=(Model.Products.PageIndex), category=(ViewData["CategoryName"]) }) %>

そして、ページを取得する製品コントローラーで、ページが存在するかどうかを確認しますか?

public ActionResult Index(int page, string category)
{
    ViewData["CategoryName"] = category;

    if(!string.IsNullOrEmpty(category)){
        //paging with category
    }else{
        //paging without category
    }
    return View("Create");
}

それとも、「ぎこちないifステートメント」とはどういう意味ですか?

于 2009-05-20T12:08:06.277 に答える
2

cars変数がnullまたは空の文字列の場合、Html.RouteLinkメソッドはカテゴリパラメータをURLに自動的に追加しません。追加のチェックを行う必要はありません。

于 2009-05-20T12:26:15.553 に答える