如何在视图中重用视图中的模型类型

本文关键字:视图 模型 类型 | 更新日期: 2023-09-27 18:26:02

如何重用我声明的模型类型?在视图的顶部有声明

@model mySpace.viewModels.viewModel

我想做的是在页面的后面,做一些类似的事情

@for( viewModel vM in ViewBag.viewModels )
{
 //some foo bar
}

如何在视图中重用视图中的模型类型

如果您已经有了强类型视图,那么您真的不应该考虑ViewBag/ViewData。一旦你有了视图模型的强类型视图,你在这个视图中所要做的就是使用这个视图模型的属性,比如:

@foreach (viewModel vm in Model.SomeSubModels)
{
    //some foo bar
}

或者更好的是,为了避免视图中可怕的foreach循环,您可以使用编辑器模板(如果您需要编辑一些属性):

@Html.EditorFor(x => x.SomeSubModels)

或者使用显示模板(如果您只想向用户显示视图模型属性的值):

@Html.DisplayFor(x => x.SomeSubModels)

因此,在设计ASP.NET MVC应用程序时,以下是几个需要遵循的基本规则(按顺序):

  1. 您忘记了ViewBag/ViewData。就好像它们根本不存在。你只是把它们抹杀了。如果你忘记了他们,你会对自己做出真正的贡献
  2. 您定义了一个视图模型,它是一个包含视图所需的所有属性的类
  3. 您让控制器操作查询存储库和域模型,并将结果映射到将传递给视图的视图模型
  4. 在相应的视图中,您只需使用控制器操作提供的视图模型的属性来显示一些信息

规则1。是真正的基础,也是最重要的。如果你不遵守这个规则,你就真的没有正确地使用ASP.NET MVC。