C# 创建下拉列表asp.net core
我有两个视图模型:C# 创建下拉列表asp.net core,c#,asp.net,.net,razor,mvvm,C#,Asp.net,.net,Razor,Mvvm,我有两个视图模型: public class PersonViewModel { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public DateTime Dob { get; set; } public string Email { get; set; } public ICollec
public class PersonViewModel
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime Dob { get; set; }
public string Email { get; set; }
public ICollection<PetViewModel> Pets { get; set; }
}
public class PetViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public int PersonId { get; set; }
public PersonViewModel Person { get; set; }
}
我正在尝试通过ViewBag执行此操作,并在视图中执行以下操作:
@model UI.ViewModels.PetViewModel
<h2>Create</h2>
<form asp-action="Create">
<div class="form-horizontal">
<h4>Create a Pet</h4>
<div class="form-group">
<label asp-for="PersonId" class="col-md-2 control-label"></label>
<div class="col-md-10">
@Html.DropDownListFor(model => model.PersonId, ViewBag.PeopleList, "--Select--", new { @class = "form-control"})
<span asp-validation-for="PersonId" class="text-danger"></span>
</div>
</div>
</div>
</form>
@model UI.ViewModels.PetViewModel
创造
制作宠物
@DropDownListFor(model=>model.PersonId,ViewBag.PeopleList,“--Select--”,new{@class=“form control”})
尝试执行此操作时,我遇到以下错误:如果不首先将lambda表达式强制转换为委托或表达式树类型,则无法将其用作动态调度操作的参数。
感谢您的帮助。谢谢 我通过执行以下操作成功修复了它:
<div class="form-group">
<label asp-for="PersonId" class="col-md-2 control-label"></label>
<div class="col-md-10">
@Html.DropDownListFor(model => model.PersonId, (SelectList)ViewBag.PeopleList, "--Select--", new { @class = "form-control"})
<span asp-validation-for="PersonId" class="text-danger"></span>
</div>
</div>
@DropDownListFor(model=>model.PersonId,(SelectList)ViewBag.PeopleList,“--Select--”,new{@class=“form control”})
我没有将ViewBag.PeopleList
转换为SelectList
,而是将Html.DropDownList
中的第二个参数更改为(SelectList)ViewBag.PeopleList
为我解决了这个问题
<div class="form-group">
<label asp-for="PersonId" class="col-md-2 control-label"></label>
<div class="col-md-10">
@Html.DropDownListFor(model => model.PersonId, (SelectList)ViewBag.PeopleList, "--Select--", new { @class = "form-control"})
<span asp-validation-for="PersonId" class="text-danger"></span>
</div>
</div>