ASP.NET MVC - 如何将数组传递给视图?
我在这里苦苦挣扎,找到一种简单的方法将数组从控制器传递到ASP.NET MVC框架的视图。ASP.NET MVC - 如何将数组传递给视图?
所以在我的控制器我会是这样的:
public class HomeController : ApplicationController
{
public ActionResult Index()
{
string[] myArray = { "value01", "value02", "value03"};
ViewData["passedArray"] = myArray;
return View();
}
}
所以我认为我会只是为了计算机[“passedArray”]呼叫并在其上运行的循环。
但显然ViewData的正被认为收到System.String,可能是因为对数组类型的声明,但不幸的是,我不知道如何正确,只是通过它没有创造数百万的代码行。
如果有人能帮助我,那将是太棒了。
在此先感谢
您需要在浏览投
<% var myArray = (string[])ViewData["passedArray"]; %>
这应该由视图的String []内铸造计算机[ “passedArray”。或者,如果您想额外增加英里数:创建一个包含此数组作为成员的ViewModel类,并将该ViewModel传递给您的视图的强类型版本。
非常感谢大卫·我用铸造如你所说,它是完美的。 但我喜欢创建一个特定的视图模型来管理变量的想法。我会尽力让自己更好地了解它。 再次感谢。 – zanona 2009-09-10 14:43:22
选择ViewModel的原因有很多。 (1)需要演员阵容打开运行时错误的大门。 (2)创建ViewModel为您提供了灵活性,可随时添加功能,而无需更改视图的类型。 (3)没有ViewData [“key”]代码散布在您的视图中,您的代码会稍微更具可读性。 – 2009-09-10 15:01:32
大卫,所以你的意思是,如果我创建一个像MyCustomViewModel控制器的新类,并通过这个类像 var myCustomOne = new MyCustomViewModel(); myCustomOne.myArray = new int [] {1,2,3,4} return View(myCustomOne); 我可以在我的视图中访问该数组,例如: Model.myArray as int [] 是吗? – zanona 2009-09-11 12:15:14
您可以使用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>
感谢您的敏捷,您确实非常敏捷! 正是我想要的。干杯 – zanona 2009-09-10 14:40:40