2010-11-21 2 views
1

С asp.net-4.0 Я сделал это:Как передать список в asp.net-MVC2

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.

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

Благодаря M

ответ

5

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

У вас есть дополнительная информация 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); 
+0

Так что в данном случае то, что ImageViewModel() и если Еогеасп быть, как это «Еогеасп (вар изображение в Model.imageViewModel) " тогда? – Mikael

+0

Если вы сильно набираете свое представление как тип ImageViewModel, и этот тип имел свойство Images, вы получили бы доступ к данным в вашем представлении с помощью Model.Images. – Matt

+0

«ImageViewModel» - это класс, который вы создаете, обладающий свойством «Images». В представлении вы затем ссылаетесь на экземпляр класса, который прошел в качестве «Модель». – svick

Смежные вопросы