【发布时间】:2018-05-27 13:58:26
【问题描述】:
我的目标是生成一个 <select> 下拉列表,其中预先选择了某个选择值 (<option>),因此最终确定的 HTML 应如下所示:
<select>
<option value = "1">Option1</option>
<option value = "2" selected>Option2</option>
<option value = "3">Option3</option>
</select>
请注意,值为 2 的选项有一个selected 属性,表示它会在单击下拉菜单之前显示。我不能(并且正在尝试)使用 .NET Core Tag Helpers 来实现这一点。
这是我的模型(我认为你可以放心地忽略细节):
public class ReportViewModel
{
[Display(Name = "Pick a form")]
public IEnumerable<Form> AvailableForms { get; set; }
public Form SelectedForm { get; set; }
public List<ReportData> FormResponses { get; set; }
}
请注意,那里的 Form 对象只有 Id 和 Name 属性。
这是我的选择语句:
<label asp-for="SelectedForm.Name" class="form-control-label font-weight-bold"></label>
<select asp-for="SelectedForm.Name"
class="form-control"
onchange ="onFormSelected(this.value)"
asp-items="@(new SelectList(Model.AvailableForms, "Id", "Name"))">
</select>
我在Microsoft Guide 中没有看到答案 或blog on the topic
【问题讨论】:
-
这是默认的“空”状态还是您尝试显示选定的值(例如已经选择的用户首选项)?
-
@James 用户在另一个页面上选择了一个表单。然后加载上面的这个页面(带有标记)。目的是让他们可以根据需要选择另一种报告形式。所以,简而言之,在视图加载之前,我在控制器中有“默认”表单的 id。
-
asp-for值将确定最初选择的内容。 -
感谢@CalC,现在就试试。我以前是,假设是这样。
标签: c# asp.net-core razorengine asp.net-core-tag-helpers