Select 标签助手混淆
Select Tag Helper confusion
如果我有这个
public class EventListViewModel
{
public string Id { get; set; }
public string Description { get; set; }
}
并在控制器中
public IActionResult Index()
{
List<EventListViewModel> eventList = this.eventStructureBLL.EventListGetBy("it");
return View(eventList);
}
并在查看此
@model List<Common.DAL.ViewModels.EventListViewModel>
什么是 Select Tag Helper 正确
<select asp-for="??" asp-items="???"></select>
选择某些内容并将其发回需要将其绑定到的内容。由于它将是单个项目,因此您需要类似以下内容:
public class FooViewModel
{
public int SelectedEventId { get; set; }
}
那么 属性 就是您要绑定的内容:
<select asp-for="SelectedEventId" ...></select>
然后,您还需要传递您的选项列表,它应该是 IEnumerable<SelectListItem>
。由于您已经有一个视图模型,对于要绑定的 属性,也将其添加为 属性:
public class FooViewModel
{
public int SelectedEventId { get; set; }
public IEnumerable<SelectListItem> EventOptions { get; set; }
}
要在您的操作中填写:
model.EventOptions = this.eventStructureBLL.EventListGetBy("it").Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Description
});
然后,当然,这个模型将是您传递给视图的内容:
return View(model);
并且,在视图中:
@model FooViewModel
最后,您的 select 标签将是:
<select asp-for="SelectedEventId" asp-items="@Model.EventOptions"></select>
如果我有这个
public class EventListViewModel
{
public string Id { get; set; }
public string Description { get; set; }
}
并在控制器中
public IActionResult Index()
{
List<EventListViewModel> eventList = this.eventStructureBLL.EventListGetBy("it");
return View(eventList);
}
并在查看此
@model List<Common.DAL.ViewModels.EventListViewModel>
什么是 Select Tag Helper 正确
<select asp-for="??" asp-items="???"></select>
选择某些内容并将其发回需要将其绑定到的内容。由于它将是单个项目,因此您需要类似以下内容:
public class FooViewModel
{
public int SelectedEventId { get; set; }
}
那么 属性 就是您要绑定的内容:
<select asp-for="SelectedEventId" ...></select>
然后,您还需要传递您的选项列表,它应该是 IEnumerable<SelectListItem>
。由于您已经有一个视图模型,对于要绑定的 属性,也将其添加为 属性:
public class FooViewModel
{
public int SelectedEventId { get; set; }
public IEnumerable<SelectListItem> EventOptions { get; set; }
}
要在您的操作中填写:
model.EventOptions = this.eventStructureBLL.EventListGetBy("it").Select(x => new SelectListItem
{
Value = x.Id.ToString(),
Text = x.Description
});
然后,当然,这个模型将是您传递给视图的内容:
return View(model);
并且,在视图中:
@model FooViewModel
最后,您的 select 标签将是:
<select asp-for="SelectedEventId" asp-items="@Model.EventOptions"></select>