Как передать список в asp.net-MVC2 - PullRequest
1 голос
/ 21 ноября 2010

С 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>

А потом изображения были в коде позади, как это 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("", "",  "", "", "", "");

Теперь с asp.net-MVC2 у меня нет кода, поэтому я не могу получить доступ к изображениям, как раньше, и некоторым, как вместо этого, нужно передать его в файл .aspx.

Как это сделать?

Спасибо М

1 Ответ

5 голосов
/ 21 ноября 2010

Вы бы использовали строго типизированное представление и передавали модель в представление из контроллера.

Здесь вы можете найти некоторые детали здесь .

Затем вы использовали бычто-то вроде ...

<% 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); 
...