我想根据我视图中两个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; }
}
答案 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%确定您的模型如何协同工作以及如何定义它们,但我希望这有助于您找到解决问题的理想解决方案。