Bal*_*alu 29 asp.net-mvc razor asp.net-mvc-3
我有一个List <>与Controller动作中的一些数据绑定,我想将该List <>传递给View以与Razor View中的DataGrid绑定.
我是MVC的新手.任何人都可以帮助我如何通过以及如何在View中访问.
arc*_*hil 44
将数据传递给视图很简单,因为将对象传递给方法.看一下 Controller.View方法
protected internal ViewResult View(
Object model
)
Run Code Online (Sandbox Code Playgroud)
像这样的东西
//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>
}
Run Code Online (Sandbox Code Playgroud)
我这样做了;
在控制器中:
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());
}
Run Code Online (Sandbox Code Playgroud)
在视图中:
@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>
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
您可以使用动态对象ViewBag将数据从控制器传递到视图.
将以下内容添加到您的控制器:
ViewBag.MyList = myList;
Run Code Online (Sandbox Code Playgroud)
然后你可以从你的视图中访问它:
@ViewBag.MyList
// e.g.
@foreach (var item in ViewBag.MyList) { ... }
Run Code Online (Sandbox Code Playgroud)
小智 6
创建一个模型,其中包含您的列表和视图所需的其他内容。
例如:
public class MyModel
{
public List<string> _MyList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)从操作方法将您想要的列表放入模型_MyList属性中,例如:
public ActionResult ArticleList(MyModel model)
{
model._MyList = new List<string>{"item1","item2","item3"};
return PartialView(@"~/Views/Home/MyView.cshtml", model);
}
Run Code Online (Sandbox Code Playgroud)在您看来访问模型如下
@model MyModel
foreach (var item in Model)
{
<div>@item</div>
}
Run Code Online (Sandbox Code Playgroud)我认为这对开始有所帮助。
| 归档时间: |
|
| 查看次数: |
128799 次 |
| 最近记录: |