如何在asp.net-MVC2中传递一个列表

Mik*_*ael 1 c# viewmodel asp.net-mvc-2

使用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>
Run Code Online (Sandbox Code Playgroud)

然后像这个slideshow.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("", "",  "", "", "", "");
Run Code Online (Sandbox Code Playgroud)

现在使用asp.net-MVC2我没有任何代码,所以我不能像以前一样访问图像,而是一些如何将它传递给.aspx文件.

这是怎么做到的?

谢谢M.

Mat*_*att 5

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

你可以在这里找到一些细节.

然后你会用...

<% foreach(var image in Model.Images) { %>

   <div><%= image.Name %></div>

<% } %>
Run Code Online (Sandbox Code Playgroud)

您的控制器看起来如下所示,您可以从中获取来自某些外部源的图像列表.

public ActionResult Index()
{
  ImageViewModel imageViewModel = new ImageViewModel();
  imageViewModel.Images = _imageRepository.GetImages();

  return View ("Index", imageViewModel);    

}
Run Code Online (Sandbox Code Playgroud)

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

return View (imageViewModel);  
Run Code Online (Sandbox Code Playgroud)

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

return View ("Index", imageViewModel); 
Run Code Online (Sandbox Code Playgroud)