我在模型中完成了一个方法,它可以获得我需要在注册中显示的不同类型,并且效果很好。
@model project1.Models.Location
@Html.DropDownListFor(m => m.Genre, Model.GenreDropDown())
这是我模型中的方法:
public List<SelectListItem> GenreDropDown()
{
var db2 = new UsersContext();
var genreList = new List<SelectListItem>();
foreach (var item in db2.Genre)
{
genreList.Add(new SelectListItem { Value = item.GenreName,
Text = item.GenreName });
}
return genreList;
}
问题在于我想在另一个视图中执行相同的操作,但它从控制器获取:
@model List< project1.Models.Location>
关于如何用剃刀做这个的任何顺利建议?我有点新鲜。
此外,@ model的空间是有意的,它被解释为某些内容并且没有显示。
非常感谢!
答案 0 :(得分:0)
您可以使用MVC EditorTemplates。要创建编辑器模板,您需要在〜/ Views / Shared / 文件夹下创建名为 EditorTemplates 的文件夹。在此文件夹中,您可以创建名称匹配的视图作为模型类名称 - 在这种情况下,视图名称为位置。
以下是 Location.cshtml 的内容:
@model MvcApplication1.Models.Location
<div>
@Html.DropDownListFor(m => m.Genre, Model.GenreDropDown())
</div>
在您的观点中,您只需写下:
@model List<MvcApplication1.Models.Location>
@Html.EditorFor(m => m)