在视图上我在循环中调用渲染动作,动作将创建一个对象数组并返回到带有网格的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次,即使我将一个随机数传递给附加到显示文本的每个Action,网格中每个元素的值也是相同的。
答案 0 :(得分:2)
而不是在new Random()
中调用foreach
,而是在foreach
之前声明一个实例。你得到重复,因为它使用相同的种子。
示例:强>
Random random = new Random();
foreach (var item in Model)
<%Html.RenderAction("GridData", "Customer", new {passidx = (random.Next(50))});%>
答案 1 :(得分:0)
看起来它是引起问题的变量的范围。如果我在循环中声明Random或int或其他内容它不起作用,那么将它移到外面就可以了。