ASP.Net Core2 剃须刀选择列表
ASP.Net Core2 Razor Selectlist
select/dropdown Core2 中 Razor Pages.
中似乎有零个与 select/dropdown 列表相关的文档
我想创建下拉列表,其中 select/display 来自另一个 table 的数据。
我怀疑每个 'view'(索引、详细信息、创建和编辑)很可能需要不同的实现?
例如:
索引和详细信息(仅供查看)页面,需要读取字段中的值,然后从引用 table.
中获取相关文本
那里有大量与 MVC 相关的信息,但 Razor 页面没有 ViewBag。
我试过添加
var 学校 = _context.AdmSchool.ToList();
SelectList selectList = new SelectList(school, "AdmSchoolId", "AdmSchoolName", null);
学校 = selectList;
在 create.cshtml.cs('controller' 因为缺少 Razor 名称)文件
和
@Html.DropDownList("school", null, null, htmlAttributes: new{@class="form-control", placeholder="Select School"});
进入Create.cshtml(查看)文件。
那么有人有使用 Razor 页面的经验吗?
我必须承认我是一个绝对的新手,所以你的回答越详细,我就越有可能理解它。
谢谢
您应该使用 select tag helper in Razor Pages 而不是早期版本的 MVC 中的旧式 Html 助手。
asp-items
属性的数据应该是 List<SelectListItem>
:
var items = _context.AdmSchool.Select(s => new SelectListItem{
Value = s.AdmSchoolId.ToString(),
Text = s.AdmSchoolName
}).ToList();
您可以将其分配给 PageModel(控制器)上的 属性 或分配给 ViewData(而非 ViewBag):
ViewData["Items"] = items;
然后将其分配给 asp-items 属性:
<select asp-for="SelectedAdmSchoolId" asp-items="@((List<SelectListItem>)ViewData["Items"])"></select>
最后,在 PageModel 中添加一个 属性 来捕获选定的值:
[BindProperty]
public int SelectedAdmSchoolId {get; set;}
select/dropdown Core2 中 Razor Pages.
中似乎有零个与 select/dropdown 列表相关的文档我想创建下拉列表,其中 select/display 来自另一个 table 的数据。
我怀疑每个 'view'(索引、详细信息、创建和编辑)很可能需要不同的实现? 例如: 索引和详细信息(仅供查看)页面,需要读取字段中的值,然后从引用 table.
中获取相关文本那里有大量与 MVC 相关的信息,但 Razor 页面没有 ViewBag。
我试过添加
var 学校 = _context.AdmSchool.ToList(); SelectList selectList = new SelectList(school, "AdmSchoolId", "AdmSchoolName", null); 学校 = selectList;
在 create.cshtml.cs('controller' 因为缺少 Razor 名称)文件
和
@Html.DropDownList("school", null, null, htmlAttributes: new{@class="form-control", placeholder="Select School"});
进入Create.cshtml(查看)文件。
那么有人有使用 Razor 页面的经验吗? 我必须承认我是一个绝对的新手,所以你的回答越详细,我就越有可能理解它。 谢谢
您应该使用 select tag helper in Razor Pages 而不是早期版本的 MVC 中的旧式 Html 助手。
asp-items
属性的数据应该是 List<SelectListItem>
:
var items = _context.AdmSchool.Select(s => new SelectListItem{
Value = s.AdmSchoolId.ToString(),
Text = s.AdmSchoolName
}).ToList();
您可以将其分配给 PageModel(控制器)上的 属性 或分配给 ViewData(而非 ViewBag):
ViewData["Items"] = items;
然后将其分配给 asp-items 属性:
<select asp-for="SelectedAdmSchoolId" asp-items="@((List<SelectListItem>)ViewData["Items"])"></select>
最后,在 PageModel 中添加一个 属性 来捕获选定的值:
[BindProperty]
public int SelectedAdmSchoolId {get; set;}