从控制器方法填充下拉列表
Populating the dropdown from the controller method
我正在尝试在我的索引页面中创建一个下拉列表,并使用 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。但我想检查一下我们是否可以直接调用控制器操作来填充下拉列表
你的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>
我正在尝试在我的索引页面中创建一个下拉列表,并使用 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。但我想检查一下我们是否可以直接调用控制器操作来填充下拉列表
你的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>