0

searchArea.cshtml地域別searchCity.cshtml検索、都市別検索など、複数のビューページがあります。シングルアクションを使いたい。実際には、大文字と小文字を切り替えて、エリア検索の場合はtype = 1、都市検索の場合はtype=2などの検索タイプの非表示フィールドを切り替えます。このタイプは、検索するカテゴリを識別するためにスイッチケースで使用されます。

     public ActionResult SearchPost(string searchString,int searchType)
    {

        var posts= from s in db.posts.Include("user")
                       select s;
        switch (searchType)
        {
            case 1:
                posts = db.posts.Include("user").Where(i => i.area == searchString);
                break;
            case 2:
                posts = db.posts.Include("user").Where(i => i.city == searchString);
                break;
            case 3:
                posts = db.posts.Include("user").Where(i => i.garage == searchString);
                break;
            case 4:
                posts = db.posts.Include("user").Where(i => i.p_code == searchString);
                break;

        }
        return View(db.posts.ToList());
    }

結果を共通のビューで表示したい。シングルビュー検索ページとシングルビュー検索結果ページで実装するアイデアはありますか???? 出来ますか???前もって感謝します...

4

1 に答える 1

0

MVCモデルバインディングは、「手動で」コーディングした(つまり、を使用しない@Html helpers)入力で正常に機能します。

したがって、ビューに非表示のフィールドを含め、caseステートメントに対応するようにハードコードされた値を使用すると、問題なく機能するはずです。

例:searchArea.cshtmlインクルード

<input type="hidden" name="searchString" value="1" />

残りのビューの対応するフィールド。これらはすべて同じアクションを使用できる必要があります。

于 2012-05-04T03:44:20.843 に答える