9

我在这里苦苦挣扎,寻找一种简单的方法将数组从控制器传递到 ASP.NET MVC 框架上的视图。

所以在我的控制器中,我会有类似的东西:

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

所以在我看来,我只需调用ViewData["passedArray"]并在其上运行一个循环。

但显然ViewData被视图接收为System.String,可能是因为 Array DataType 上的声明,但不幸的是我不知道如何正确地简单地传递它而不创建数百万行代码。

如果有人能帮助我,那就太好了。

提前致谢

4

3 回答 3

15

您需要在视图中投射

<% var myArray = (string[])ViewData["passedArray"]; %>
于 2009-09-10T13:45:46.370 回答
9

这应该通过将视图中的 ViewData["passedArray"] 转换为 string[] 来工作。或者,如果您想加倍努力:创建一个包含此数组作为成员的 ViewModel 类,并将该 ViewModel 传递给您的视图的强类型版本。

于 2009-09-10T13:45:08.273 回答
0

您可以像这样使用 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>
于 2016-09-28T21:49:54.683 回答