質問

私は、検索の結果を示したリストと呼ばれる作用を有します。彼らはオプションですので、それはクエリ文字列を通じてパラメータを受け取ります。私のメソッドのシグネチャは次のようになります:

public ActionResult List(List<int> categoryIDs, string school, int? stateID, int? page)

CategoryIDs複数選択ボックスであり、私はGETリクエストの上にすべてをやっています。私は何をする必要があることは次のページに私の見解でリンクを作成しても同じ検索パラメータを保持しています。私は手でリンクを構築することができます知っているが、categoryIDsは、「?カテゴリID = 1&カテゴリID = 2&カテゴリID = 3」のリストにバインドするようにフォーマットする必要がある場合は特に、内蔵方式のルーティングのいずれかを使用することが可能です。<? / P>

役に立ちましたか?

解決

私は、あなたがデフォルトであることを行うことができます何ActionLinkのオーバーロードがありませんと思います。あなたが含めたいパラメータでRouteValueDictionaryインスタンスを移入する必要があります。

繰り返しキーはcategoryIDs=2,3,4,5で許可されていないので、

カテゴリのリストについては、RouteValueDictionaryなどのようにS / Tしてみてください。その後、アクションメソッドに整数リストに文字列を解析する必要があります。

他のヒント

あなたはこれを行うことができる必要があります:

現在のすべての値がデフォルトで渡す必要があります。私は正しい過負荷を参照してることを確認するのに、それを試してみる必要があると思います。

私はアクションを検索し、ビューにパラメータオブジェクトを渡すためのパラメータとしてオブジェクトを渡したいです。したがって、このようなあなたのコントローラ内のいくつかのコード(と私はロブConeryのPagedListクラスを使用しています注意してくださいの):

public class SearchParameters {
    public string School { get; set; }
    public int? StateID { get; set; }
    public int? Page { get; set; }

    public SearchParameters GetPage(int page) {
        return new SearchParameters {
            School = School,
            StateID = StateID,
            Page = page
        };
    }
}

public class SearchViewModel {
    public PagedList<[YourResultType]> Results { get; set; }
    public SearchParameters Parameters { get; set; }
}

// ...

public ActionResult Search(SearchParameters parameters) {
    IQueryable<[YourResultType]> query;
    // ... do some stuff to get your search results

    return View("Search", new SearchViewModel {
        Results = query.ToPagedList(parameters.Page - 1), 15),
        Parameters = parameters
    });
}

だからあなたの検索ビューは、このようなページ宣言でジェネリックビューページから継承されます:

<%@ Page ... Inherits="ViewPage<SearchViewModel>" %>

すると、検索ビューで、あなたはこのような何かを行うことができます...

<% for(int i = 0; i < Model.Results.TotalPages; i++) { %>
    <%= Html.ActionLink(i + 1).ToString(), "Search",
        Model.Parameters.GetPage(i + 1)) %>
<% } %>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top