我该怎么办?我已经开始使用MVC而且我在传递数据方面存在问题.
我的具体问题是我的模型中的对象列表,我需要在View中访问并迭代.
提前致谢.
让我们说你的控制器动作看起来像
public ActionResult List() { ListmyList = database.GetListOfStrings(); (...) }
现在您要将列表传递给视图,例如"List.aspx".您可以通过让操作返回ViewResult(ViewResult是ActionResult的子类)来完成此操作.您可以使用Controller的View方法返回ViewResult,如下所示:
public ActionResult List() { ListmyList = database.GetListOfStrings(); (...) return View("List", myList); }
为了能够在视图中以强类型方式访问列表,它必须从ViewPage派生,其中T是您传入的数据的类型.因此,在当前情况下我们的视图(在List.aspx中. cs)会是这样的:
public partial class List : ViewPage{ (...) }
以这种方式传递到视图中的数据称为"ViewData".要访问数据,您必须浏览ViewPage上的ViewData.Model属性.因此,要渲染列表的内容,您将编写(在List.aspx中)
这里,this.ViewData.Model具有您在ViewPage中指定类型参数T的类型,因此在我们的示例中this.ViewData.Model具有类型List.
您可以使用转发器来渲染这样的东西,但我不推荐它.如果您想使用类似的东西,请查看CodePlex上MvcContrib项目的Grid模块.