1

私は3つのチェックボックスを持つフォームを持っています。

@Html.CheckBox("Active", true)
@Html.CheckBox("Closed", false)
@Html.CheckBox("Finalized", false)

...そして、これらのデフォルト値にマッピングされたコントローラー (おそらくそれは最善の方法ではありません)

public ActionResult TempView(bool Active = false, bool Closed = false, bool Finalized = false)
    { .... }

...そして、フィルターを適用してAJAXマジックを引き起こし、フィルターからチェックされた値にあるプロパティをテーブルから選択するボタン。

私はどこにも持っていない、たくさんの以外にIf Active is checked, WHERE Property = Active, Or If Closed is checked, WHERE Property = Closed [...]

多くのブール値でこれを行うLINQの簡単な実装はありますか? ユーザーは 3 つのボックスすべてを同時に選択できます (いずれか 1 つだけではありません)。

4

1 に答える 1

0

SummaryFilterInfo解決するために、次のような新しいタイプを作成しました。

public class SummaryFilterInfo
{
    public List<State> States { get; set; }
    public List<State> StateSelection { get; set; }

    public SummaryFilterInfo()
    {
        var stateList = new StateList();
        States = new List<State>();
        StateSelection = stateList.GetAllStates();
    }
}

次に、次StateSelectionのような名前の CheckBox の配列を設定するために使用します。

SummaryFilterInfo_States[0]

そして、私のコントローラーの定義は次のようになります。

public ActionResult Index(SummaryFilterInfo summaryFilterInfo)
    {
        ...
        var filtered = all
                       .Where(e => summaryFilterInfo.States.Contains(e.State)).ToList()
    }
于 2013-04-29T18:54:47.480 に答える