我有一个 List<> 与 Controller 操作中的一些数据绑定,我想将该 List<> 传递给 View 以与 Razor View 中的 DataGrid 绑定。
我是 MVC 的新手。任何人都可以帮助我如何通过以及如何在 View 中访问。
我有一个 List<> 与 Controller 操作中的一些数据绑定,我想将该 List<> 传递给 View 以与 Razor View 中的 DataGrid 绑定。
我是 MVC 的新手。任何人都可以帮助我如何通过以及如何在 View 中访问。
将数据传递给视图就像将对象传递给方法一样简单。看看 Controller.View 方法
protected internal ViewResult View(
Object model
)
像这样的东西
//controller
List<MyObject> list = new List<MyObject>();
return View(list);
//view
@model List<MyObject>
// and property Model is type of List<MyObject>
@foreach(var item in Model)
{
<span>@item.Name</span>
}
我这样做了;
在控制器中:
public ActionResult Index()
{
var invoices = db.Invoices;
var categories = db.Categories.ToList();
ViewData["MyData"] = categories; // Send this list to the view
return View(invoices.ToList());
}
鉴于:
@model IEnumerable<abc.Models.Invoice>
@{
ViewBag.Title = "Invoices";
}
@{
var categories = (List<Category>) ViewData["MyData"]; // Cast the list
}
@foreach (var c in @categories) // Print the list
{
@Html.Label(c.Name);
}
<table>
...
@foreach (var item in Model)
{
...
}
</table>
希望能帮助到你
您可以使用动态对象ViewBag
将数据从控制器传递到视图。
将以下内容添加到您的控制器:
ViewBag.MyList = myList;
然后您可以从您的视图中访问它:
@ViewBag.MyList
// e.g.
@foreach (var item in ViewBag.MyList) { ... }
创建一个模型,其中包含您的列表和视图所需的其他内容。
例如:
public class MyModel
{
public List<string> _MyList { get; set; }
}
从 action 方法中,将您想要的列表放入 Model_MyList
属性中,例如:
public ActionResult ArticleList(MyModel model)
{
model._MyList = new List<string>{"item1","item2","item3"};
return PartialView(@"~/Views/Home/MyView.cshtml", model);
}
在您的视图中访问模型如下
@model MyModel
foreach (var item in Model)
{
<div>@item</div>
}
我认为这将有助于开始。