9

ASP.NET MVC フレームワークのコントローラーからビューに配列を渡す簡単な方法を見つけるために、私はここで苦労しています。

私のコントローラーでは、次のようなものがあります。

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

したがって、私の見解では、ViewData["passedArray"]を呼び出してループを実行するだけです。

しかし、おそらく Array DataType の宣言のために、ViewDataがSystem.Stringとしてビューによって受信されているようですが、残念ながら、何百万ものコード行を作成せずに適切かつ単純に渡す方法がわかりません。

誰かが私を助けることができれば素晴らしいでしょう.

前もって感謝します

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 ie _myFruits.cshtml
@model  string
<li>@Model</li>
于 2016-09-28T21:49:54.683 に答える