【问题标题】:How to pass a list in asp.net-MVC2如何在 asp.net-MVC2 中传递列表
【发布时间】:2010-11-21 13:32:02
【问题描述】:

使用 asp.net-4.0 我这样做了:

slideshow.aspx
<div class="wrapCarousel">  
    <div class="Carousel">  
       <% foreach(var image in Images) { %>
       <div class="placeImages">
        <img width="150px" height="150px" src="../Img/<%=image.TnImg%>" alt="<%=image.Name%>" />
        <div class="imageText">   
         <%=image.Name%>
        </div>
       </div>
       <% } %>
   </div>

然后Images在后面的代码中是这样的 幻灯片.aspx.cs:

    public class Image
    {
        public string TnImg { get; set; }
        public string Name { get; set; }
        public string City { get; set; }
        public string RefPlace { get; set; }
        public string RefInfo { get; set; }
        public string RefInfoDynamic { get; set; }

        public Image(string TnImg, string Name, string City, string RefPlace, string RefInfo, string RefInfoDynamic)
        {
            this.TnImg = TnImg;
            this.Name = Name;
            this.City = City;
            this.RefPlace = RefPlace;
            this.RefInfo = RefInfo;
            this.RefInfoDynamic = RefInfoDynamic;
        }
    }

     Images.Add(new Image("", "",  "", "", "", "");

现在使用 asp.net-MVC2 我没有任何代码,因此我无法像以前那样访问图像,并且需要将其传递给 .aspx 文件。

这是怎么做到的?

谢谢 中号

【问题讨论】:

    标签: c# asp.net-mvc-2 viewmodel


    【解决方案1】:

    您将使用强类型视图并将模型从控制器传递到视图。

    你可以找到一些细节here

    然后你会使用类似...

    <% foreach(var image in Model.Images) { %>
    
       <div><%= image.Name %></div>
    
    <% } %>
    

    您的控制器如下所示,您可能会从某个外部来源获取图像列表。

    public ActionResult Index()
    {
      ImageViewModel imageViewModel = new ImageViewModel();
      imageViewModel.Images = _imageRepository.GetImages();
    
      return View ("Index", imageViewModel);    
    
    }
    

    在上面的代码中,你可以使用下面的来渲染视图

    return View (imageViewModel);  
    

    我更喜欢通过下面的调用来明确,并指定要呈现的视图的名称(即使它与当前控制器操作的名称相同,我认为它读起来更好)

    return View ("Index", imageViewModel); 
    

    【讨论】:

    • 那么在这种情况下 ImageViewModel() 是什么,foreach 应该是这样的“foreach(var image in Model.imageViewModel)”吗?
    • 如果您将视图强烈键入为 ImageViewModel 类型,并且该类型具有属性 Images,您将使用 Model.Images 访问视图中的数据。
    • ImageViewModel 是您创建的具有Images 属性的类。然后,在视图中,您将传入的模型类实例称为Model
    • 好的,我明白了 GetImages();是返回我想在我的 index.aspx 上拥有的图像的函数吗?问题是我不确定如何创建“ImageViewModel 是您创建的具有 Images 属性的类”作为强类型
    • ImageViewModel 只是一个类定义,您可以创建一个名为 ViewModels 的新文件夹并将所有视图模型保存在其中。 images 属性可能会返回 List。在这种情况下,GetImages 方法将返回一个 List 供您使用。
    猜你喜欢
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 2011-03-04
    相关资源
    最近更新 更多