我正在将一个asp.net项目转换为mvc c#razor项目。在.net项目中,我有2个中继器控制。现在,我已经在控制器中转换了这两个转发器功能,并在ViewBag中获取了值,但我得到的值是单独的。我想要的是下面 -
ViewBag1(在.net中为Repeater 1),其值为 - 项目1 项目2 项目3
ViewBag2(在.net中为Repeater 2),其值为 - A1 A2 B1 B2 C1 C2
如何使用ViewBag或Model或任何其他方式实现以下功能 - 项目1 A1 A2 项目2 B1 B2 ... ..
提前致谢
答案 0 :(得分:2)
MVC中的M代表MODEL,最好的方法是定义一个包含项目的数据类型(Model类)。 ViewBag将与限制一起使用,但通常用于辅助数据,例如下拉列表项(然后下拉“当前值”在模型中)。
像这样(非常基本,必要时扩展):
<强>模型/ Child.cs 强>
public class Child { public string Name; }
<强>模型/ Parent.cs 强>
public class Parent { public string Name; public List<Child> Children; }
<强>控制器/ ParentController.cs 强>
public ActionResult Index()
{
var child1 = new Child { Name = "Mikey" };
var child2 = new Child { Name = "Betsy" };
var parent = new Parent {
Name = "John",
Children = new List<Child>() { child1, child2 }
};
return View("Index", parent);
}
<强>查看/父/ Index.cshtml 强>
@model Your.Namespace.Parent
@* render the Model (a.k.a. the parent object) *@
<h3>Parent</h3>
<h4>@(Model.Name)</h4>
<h3>Children</h3>
@* render Model.Children = the child objects *@
@foreach (var child in Model.Children)
{
<h4>@(child.Name)</h4>
}
答案 1 :(得分:0)
这是一个字符串数据吗?如果是这样,您将能够使用foreach
或for
循环拆分和循环遍历字符串数组。
将值存储到控制器中的Viewbags,然后从View中访问它。