【发布时间】:2012-02-27 22:41:26
【问题描述】:
如何重用我声明的模型类型?在视图的顶部有声明
@model mySpace.viewModels.viewModel
我想要在页面后面做一些类似的事情
@for( viewModel vM in ViewBag.viewModels )
{
//some foo bar
}
【问题讨论】:
标签: c# asp.net-mvc-3 razor viewmodel
如何重用我声明的模型类型?在视图的顶部有声明
@model mySpace.viewModels.viewModel
我想要在页面后面做一些类似的事情
@for( viewModel vM in ViewBag.viewModels )
{
//some foo bar
}
【问题讨论】:
标签: c# asp.net-mvc-3 razor viewmodel
如果您已经有一个强类型视图,那么您真的不应该考虑 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 条规则是真正的基础,也是最重要的一条。如果你不遵守这条规则,你就真的没有正确地使用 ASP.NET MVC。
【讨论】:
[httppost] 装饰的控制器接受了viewmodel,并且viewmodel 被传入了带有完整列表的视图,那么该列表是否也会被发布?