0
如何重复使用我声明的模型类型?在视图的顶部有申报如何从视图中的视图重新使用模型类型?
@model mySpace.viewModels.viewModel
我想要做的就是后来在页面上,这样做
@for(viewModel vM in ViewBag.viewModels)
{
//some foo bar
}
如何重复使用我声明的模型类型?在视图的顶部有申报如何从视图中的视图重新使用模型类型?
@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是真正的基础和最重要的。如果你不尊重这个规则,你真的没有正确地做ASP.NET MVC。
我有一个列出项目的视图,也允许创建项目。当用户希望创建一个项目时,我不想回发整个列表,在这种情况下,我选择不使用强类型视图模型,因为我不想仅仅重新发布整个列表添加一个项目。 – 2012-02-27 22:49:08
@TravisJ,绝对没有你不应该在ASP.NET MVC中使用强类型视图模型的情况,你应该选择使用ViewBag/ViewCrap。查看模型是要走的路。他们会解决你所有的问题。只是不要害怕给你的项目添加新的类。 – 2012-02-27 22:50:05
如果用'[httppost]'装饰的控制器接受视图模型,并且视图模型被传递到视图中并显示完整列表,那么不会发布该列表? – 2012-02-27 22:50:37