Asp.net mvc 3 在MVC3 asp.net中搜索

Asp.net mvc 3 在MVC3 asp.net中搜索,asp.net-mvc-3,Asp.net Mvc 3,我有用于搜索的多视图页面,如searchArea.cshtml用于按区域搜索,searchCity.cshtml用于按城市搜索等等。我想用一个动作。在操作中,我想切换大小写和一个隐藏字段作为搜索类型,比如区域搜索的type=1,城市搜索的type=2等等。此类型将用于切换案例,以确定我要搜索的类别 public ActionResult SearchPost(string searchString,int searchType) { var posts= f

我有用于搜索的多视图页面,如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());
    }

我想用一个普通的视图显示结果。有没有办法通过一个单视图搜索页面和一个单视图搜索结果页面来实现它????可能吗???提前感谢…

MVC模型绑定在您“手动”编写的输入(即不使用@Html helpers)上运行良好

     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());
    }
所以,如果您在视图中包含一个隐藏字段,并带有一个硬编码值来对应您的case语句,那么它应该可以正常工作

     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());
    }
e、 g.在searchArea.cshtml中包括

     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());
    }

以及其他视图中的相应字段,它们都应该能够使用相同的操作。

使用“按城市搜索”和“按区域搜索”时返回的对象类型是什么?嗯,您的操作方法是正确的。您应该在SearchPost视图中获取列表。你在模型上尝试过foreach吗?对于所有搜索,它将返回相同类型的对象…我的视图中的IEnumerable。。。。我需要知道这个问题应该使用哪种类型。实际上,我有一个视图模型viewmodel.postModel。我需要在my view.cshtmlpage中显示此视图模型数据,并且需要在同一页面中查看我的搜索选项。此搜索将筛选我的视图模型数据。我应该将此视图数据返回到我的操作。
     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());
    }