我想使用下拉表過濾表。我可以通過單擊下拉選單來選擇資料庫中的模式。問題是每當我按下帶有選定下拉串列的提交按鈕時,什么都沒有顯示。我想要做的是從下拉串列中選擇一個模型(我猜是我做的),然后列出所有必須玩模式的游戲,就像我選擇的一樣。
索引.cshtml
@model nproject.Models.TestViewModel
@using (Html.BeginForm("Index", "Test", FormMethod.Get))
{
<label> Select a mode</label>
@Html.DropDownListFor(f => f.SelectedMode, (List<SelectListItem>)ViewBag.dgr1, "Select")
<input type="submit" value="Filter" />
}
<table>
<tr>
<th>games</th>
</tr>
@foreach (var item in Model.Data)
{
<tr>
<td>@item.GameName)</td>
</tr>
}
</table>
游戲.cs
public int GameID{ get; set; }
public string GameName{ get; set; }
public Mode Modes{ get; set; }
測驗視圖模型.cs
public int Id { get; set; }
public IEnumerable<Game> Data { set; get; }
public string SelectedMode { set; get; }
模式.cs
public int ModeID{ get; set; }
public string ModeName{ get; set; }
控制器
public class TestController: Controller
{
private readonly GameContext db = new GameContext();
// GET: Test
public ActionResult Index(string selectedMode = "")
{
var vm = new TestViewModel();
List<SelectListItem> deger1 = (from i in db.Mode.ToList()
select new SelectListItem
{
Text = i.ModeName,
Value = i.ModeID.ToString()
}).ToList();
ViewBag.dgr1 = deger1;
var data = db.Game.ToList();
if (!String.IsNullOrEmpty(selectedMode))
{
data = data.Where(x=>x.Modes.ModeName==selectedMode).ToList();
}
vm.Data = data.ToList();
return View(vm);
}
uj5u.com熱心網友回復:
我將控制器中的行從:更改 data = data.Where(x=>x.Modes.ModeName==selectedMode).ToList();
為 data = data.Where(x=>x.Modes.ModeID.ToString()==selectedMode).ToList();
問題已解決。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494612.html
標籤:。网 实体框架 模型视图控制器 ef-code-first 下拉列表用于
上一篇:是否可以在單個查詢中將映射物體選擇到另一個映射物體中?
下一篇:HasValue使EF查詢無效