从模型集合中的视图调用方法?

时间:2014-04-28 08:30:32

标签: asp.net razor

我在模型中完成了一个方法,它可以获得我需要在注册中显示的不同类型,并且效果很好。

@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的空间是有意的,它被解释为某些内容并且没有显示。

非常感谢!

1 个答案:

答案 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)