ASP.NET MVC - как передать массив в представление?

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

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

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

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

но, видимо,ViewData принимается видом как

3 ответов


вам нужно бросить в View

<% var myArray = (string[])ViewData["passedArray"]; %>

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


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

  • контроллер

        public ActionResult Index()
        {
            List<string> arr = new List<string>() { "apple", "banana", "cat" };
            return View(arr);
        }
    
  • посмотреть

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