Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建下拉列表asp.net core_C#_Asp.net_.net_Razor_Mvvm - Fatal编程技术网

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>