1

ループ内で Render アクションを呼び出しているビューでは、アクションはオブジェクトの配列を作成し、Grid を使用して PartialView に戻り、結果を表示します。

意見:

foreach (var item in Model)
<%Html.RenderAction("GridData", "Customer", new {passidx = (new Random().Next(50))});%>

コントローラ:

public ActionResult GridData(int passidx)
    {
        List<Customer> cList = new List<Customer>{new Customer() { name = "c" + (1 + passidx).ToString(), address = "a" + (1 + passidx).ToString() },
                                                  new Customer() { name = "c" + (2 + passidx).ToString(), address = "a" + (2 + passidx).ToString() }};

        return View(cList);
    }

表示されたテキストに追加される各アクションに乱数を渡しているにもかかわらず、ページを更新する 3 回のうち約 2 回は、グリッド内の各要素の値が同じです。

4

2 に答える 2

2

を呼び出す代わりに、 のnew Random()foreachに 1 つのインスタンスを宣言しますforeach。同じシードを使用しているため、重複しています。

このすばらしい答えを見てください。

例:

Random random = new Random();
foreach (var item in Model)
<%Html.RenderAction("GridData", "Customer", new {passidx = (random.Next(50))});%>
于 2011-02-17T13:52:53.620 に答える
0

問題を引き起こしているのは変数のスコープのようです。ループ内で Random や int などを宣言しても機能しない場合は、外側に移動すると機能します。

于 2011-02-17T15:15:25.937 に答える