在razor页面中放置下拉列表
我想在我的页面上放一个下拉列表。我有以下模型类:在razor页面中放置下拉列表,razor,razor-pages,Razor,Razor Pages,我想在我的页面上放一个下拉列表。我有以下模型类: using System; using System.Collections.Generic; namespace ProjectList.Models { public partial class AllItProjectsList { public int ProjectId { get; set; } public string Name { get; set; } publ
using System;
using System.Collections.Generic;
namespace ProjectList.Models
{
public partial class AllItProjectsList
{
public int ProjectId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public IEnumerable<ProjectType> Type { get; set; }
}
}
using System;
using System.Collections.Generic;
namespace ProjectList.Models
{
public partial class ProjectType
{
public int ProjectTypeId { get; set; }
public string ProjectType1 { get; set; }
}
}
使用系统;
使用System.Collections.Generic;
名称空间ProjectList.Models
{
公共部分类AllitProject列表
{
公共int ProjectId{get;set;}
公共字符串名称{get;set;}
公共字符串说明{get;set;}
公共IEnumerable类型{get;set;}
}
}
使用制度;
使用System.Collections.Generic;
名称空间ProjectList.Models
{
公共部分类ProjectType
{
public int ProjectTypeId{get;set;}
公共字符串ProjectType1{get;set;}
}
}
在我的CSHTML页面上,我有如下代码:
<div class="form-group">
<label asp-for="AllItProjectsList.Type" class="control-label"></label>
<input asp-for="AllItProjectsList.Type" class="form-control" />
<span asp-validation-for="AllItProjectsList.Type" class="text-danger"></span>
</div>
我将上述代码更改为此,以便放置下拉列表:
<div class="form-group">
<label asp-for="AllItProjectsList.Type" class="control-label"></label>
@Html.DropDownListFor(x => Model.AllItProjectsList.Type, new SelectList(Model.AllItProjectsList.Type, "ProjectTypeId", "ProjectType1"), htmlAttributes: new { @class = "form-control", id = "Type1" })
</div>
@DropDownListFor(x=>Model.AllItProjectsList.Type,new SelectList(Model.AllItProjectsList.Type,“ProjectTypeId”,“ProjectType1”),htmlAttributes:new{@class=“form control”,id=“Type1”})
我在ONModelCreating中有以下代码:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<AllItProjectsList>(entity =>
{
entity.HasKey(e => e.ProjectId);
entity.ToTable("All_IT_Projects_List");
entity.Property(e => e.ProjectId).HasColumnName("Project_ID");
entity.Property(e => e.Type).HasMaxLength(255);
}
});
modelBuilder.Entity<ProjectType>(entity =>
{
entity.ToTable("Project_Type");
entity.Property(e => e.ProjectType1)
.HasColumnName("ProjectType")
.HasMaxLength(50)
.IsUnicode(false);
});
OnModelCreatingPartial(modelBuilder);
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity(Entity=>
{
entity.HasKey(e=>e.projectd);
实体。ToTable(“所有IT项目列表”);
entity.Property(e=>e.ProjectId).HasColumnName(“项目ID”);
Property(e=>e.Type).HasMaxLength(255);
}
});
modelBuilder.Entity(Entity=>
{
实体。可转帐(“项目类型”);
entity.Property(e=>e.ProjectType1)
.HasColumnName(“项目类型”)
.HasMaxLength(50)
.IsUnicode(假);
});
OnModelCreatingPartial(modelBuilder);
我得到这个错误:
InvalidOperationException:属性“AllItProjectsList.Type”的类型为“IEnumerable”,当前数据库提供程序不支持该类型。更改属性CLR类型或使用“[NotMapped]”属性或使用“OnModelCreating”中的“EntityTypeBuilder.ignore”忽略该属性