2016-07-05 75 views
-1

我想在我看来基于从两个DropDownList给出的输入显示数据。什么是最好的方法来做到这一点?我如何将DropDownList值传递给控制器​​?根据选定的下拉列表值重新获取数据

这里是我的控制器

// GET: Define 
     public ActionResult Index() 
     { 
      IEnumerable<SelectListItem> Rooms = db.RM_ROOM.Select(c => new SelectListItem 
      { 
       Value = c.NAME, 
       Text = c.NAME 

      }); 
      ViewBag.NAME = Rooms; 

      IEnumerable<SelectListItem> item = db.RM_ENTITY_TYPE.Select(c => new SelectListItem 
      { 
       Value = c.ENTITY_NAME, 
       Text = c.ENTITY_NAME 

      }); 
      ViewBag.ENTITY_NAME = item; 
      //var rooms = db.RM_ROOM.ToList(); 

      return View();  
     } 

这里是我的指数

@using WebApplication1.Models; 

@{ 
    ViewBag.Title = "Index"; 
} 
<div class="container"> 
    <div class="row"> 
     <div class="col-sm-1"> 
      Room 
      @Html.DropDownList("NAME", "") 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-sm-2"> 
      Entity 
      @Html.DropDownList("ENTITY_NAME", "") 
     </div> 
    </div> 
</div> 

和我的视图模型是

public class DefineViewModelcs 
{ 
    public IEnumerable<SelectListItem> Rooms { get; set; } 

    public int ROOMID { get; set; } 
    public string NAME { get; set; } 
    public IEnumerable<SelectListItem> Entities { get; set; } 
    public int ENTITY_TYPEID { get; set; } 
    public string ENTITY_NAME { get; set; } 
    public int APPROVED_ROOM_STATEID { get; set; } 
    public bool Selected { get; set; } 
} 
+2

对于您的视图,您应该使用'@using WebApplication1.DefineViewModelcs.cs'而不是'WebApplication1.Models'来指定特定的视图模型,如果它位于Models文件夹中,那么它将是'WebApplication1。 DefineViewModelcs.cs' – prospector

+0

我已经在开始时使用过它,但并没有在这里复制它 –

回答

0

,你需要做的第一件事是通过你的价值的距离你对你的控制器的看法。

您可以使用Eventlistener来检测下拉菜单中的更改,以便通过将下拉菜单包装到窗体中来调用您的控件分级。

@using(Html.BeginForm("ActionName","ControllerName")) 
    { 
     @Html.DropDownList("IdOfDropDown", 
          "YourListToDisplayInsideTheMenu", 
          new { onchange = “$(this.form).submit();”} 
    } 

您的控制器将需要接受输入参数。 然后您将需要使用这些值来筛选您的数据库中的搜索

您需要做的最后一件事是将您的搜索结果返回到您的视图。

public ActionResult Filter(int id) 
     { 
      //Do your search here and return a list to the view, example: 
      Room room = db.RM_ROOM.Find(r => r.ROOMID == id) 

      return View(room); 

      //this will return a single room from your database 
     } 

我不知道你的模型如何一起工作100%,他们是如何定义的,但我希望这可以帮助你在你的方式来找到你的问题的理想解决方案。

相关问题