ASP.NET MVC - Как передать массив в представление? - PullRequest
9 голосов
/ 10 сентября 2009

Я изо всех сил пытаюсь найти простой способ передачи массива из контроллера в представление ASP.NET MVC framework.

так что в моем контроллере у меня будет что-то вроде:

public class HomeController : ApplicationController
{   
    public ActionResult Index()
    {
        string[] myArray = { "value01", "value02", "value03"};
        ViewData["passedArray"] = myArray;
        return View();
    }
}

так что, на мой взгляд, я бы просто вызвал ViewData ["sentArray"] и запустил цикл для него.

Но, очевидно, ViewData принимается представлением как System.String , вероятно, из-за объявления в массиве DataType, но, к сожалению, я не знаю, как передать это правильно и просто без создания миллионов строк кода.

Было бы замечательно, если бы вы могли мне помочь.

Заранее спасибо

Ответы [ 3 ]

12 голосов
/ 10 сентября 2009

Вам нужно разыграть в представлении

<% var myArray = (string[])ViewData["passedArray"]; %>
9 голосов
/ 10 сентября 2009

Это должно работать путем приведения ViewData ["sentArray"] в представлении к строке []. В качестве альтернативы, если вы хотите пройти лишнюю милю: создайте класс ViewModel, который содержит этот массив в качестве члена, и передайте этот ViewModel в строго типизированную версию вашего представления.

0 голосов
/ 29 сентября 2016

Вы можете использовать PartialView следующим образом:

  • Контроллер

        public ActionResult Index()
        {
            List<string> arr = new List<string>() { "apple", "banana", "cat" };
            return View(arr);
        }
    
  • View

@model List<string>
@foreach (var item in Model) { 
        @Html.Partial("~/Views/Shared/Fruits/_myFruits.cshtml", item);
}
  • PatialView, т.е. _myFruits.cshtml
@model  string
<li>@Model</li>
...