我正在嘗試在我的索引頁面中創建一個下拉串列,并使用 Controller 方法中的值填充它。我在控制器中創建了一個方法來獲取需要在 index() 頁面中添加的下拉串列的值
private SortedSet<string> getRooms(DbSet<RmRoom> rmRooms)
{
var roomNameSet = new SortedSet<string>();
foreach (var item in rmRooms)
{
roomNameSet.Add(item.Name);
}
return roomNameSet;
}
現在在索引頁面上,我不確定如何呼叫此方法來填充下拉串列
<select id="dropdownRoom">
<option value="0">Select Room</option>
//here how to call the controller method
</select>
大多數論壇都在談論使用 ViewData/ViewBag。但是我想檢查我們是否可以直接呼叫控制器操作來填充下拉串列
uj5u.com熱心網友回復:
你getRooms是私有方法,所以view不能直接呼叫,除非你把它改成public方法,但是在Index action中使用ViewData/ViewBag傳遞資料給view更安全,這樣別人也不能直接呼叫getRooms。
這是一個帶有 ViewData 的演示:
public IActionResult Index()
{
...
ViewData["RoomList"]=getRooms(rmRooms);
return View();
}
看法:
<select id="dropdownRoom">
<option value="0">Select Room</option>
@foreach (var item in ViewData["RoomList"] as IEnumerable<string>)
{
<option value=@item>@item</option>
}
</select>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/356565.html
標籤:C# asp.net 剃刀 asp.net-core-mvc
上一篇:從字串中提取資訊并將其分配給變數
