我有这样的代码:
当您编辑UserProfile(使用相应的CRUD(Controlers + Views))时,您会看到SexType的下拉列表(您也可以使用其他CRUD编辑)并且将对应于SexType表。
public class UserProfile{
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public int SexTypeId { get; set; }
public virtual SexType SexType { get; set; }
public class SexType
{
public int SexTypeId { get; set; }
public string SexTypeDescription { get; set; }
public virtual ICollection<UserProfile> UserProfiles { get; set; }
}
public class UserProfileDBContext : DbContext //This creates the database according to the model
{
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<SexType> SexType { get; set; }
}
我想要的: 我想要一个更简单的事情,但我无法做到:
我希望在我的模型(或控制器)中对sextype进行硬编码(男/女)。 不在数据库中。 我不想要任何数据库,只是每当我在“UserProfile”上创建或更新记录时,只需使用“男/女”选项可视化下拉列表。
你能帮帮我吗?
答案 0 :(得分:2)
您可以在视图中执行此操作:
@Html.DropDownList("SexType",
new[] {
new SelectListItem() { Text="Male", Value = "M" },
new SelectListItem() { Text="Female", Value = "F" }
}
);
答案 1 :(得分:0)
向UserProfile
ViewModel添加新属性以保存列表ot SexTypes
public class UserProfile{
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public int SexTypeId { get; set; }
public IEnumerable<SelectListItem> SexTypes { get; set; }
}
在您的GET
操作方法中,您可以填写它并返回视图
public ActionResult Create()
{
var model=new UserProfile();
model.SexTypes = new[]
{
new SelectListItem { Value = "M", Text = "Male" },
new SelectListItem { Value = "F", Text = "FeMale" },
};
return View(model);
}
并且在您的视图中与UserProfile
ViewModel
@Html.DropDownListFor(x => x.SexTypeId, new SelectList(Model.SexTypes,
"Value","Text"), "Select..")