当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET MVC:如何将列表(从Model中的类)传递到View中的转发器?

如何解决《ASP.NETMVC:如何将列表(从Model中的类)传递到View中的转发器?》经验,为你挑选了1个好方法。

我该怎么办?我已经开始使用MVC而且我在传递数据方面存在问题.

我的具体问题是我的模型中的对象列表,我需要在View中访问并迭代.

提前致谢.



1> Rune..:

让我们说你的控制器动作看起来像

public ActionResult List()
{
    List myList = database.GetListOfStrings();
    (...)
}

现在您要将列表传递给视图,例如"List.aspx".您可以通过让操作返回ViewResult(ViewResult是ActionResult的子类)来完成此操作.您可以使用Controller的View方法返回ViewResult,如下所示:

public ActionResult List()
{
    List myList = database.GetListOfStrings();
    (...)
    return View("List", myList);
}

为了能够在视图中以强类型方式访问列表,它必须从ViewPage派生,其中T是您传入的数据的类型.因此,在当前情况下我们的视图(在List.aspx中. cs)会是这样的:

public partial class List : ViewPage
{
    (...)
}

以这种方式传递到视图中的数据称为"ViewData".要访问数据,您必须浏览ViewPage上的ViewData.Model属性.因此,要渲染列表的内容,您将编写(在List.aspx中)

    <% foreach(var s in this.ViewData.Model){ %>
  • <%= s %>
  • <% } %>

这里,this.ViewData.Model具有您在ViewPage中指定类型参数T的类型,因此在我们的示例中this.ViewData.Model具有类型List.

可以使用转发器来渲染这样的东西,但我不推荐它.如果您想使用类似的东西,请查看CodePlex上MvcContrib项目的Grid模块.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有