如何从控制器传递名单MVC 3查看(How to pass List from Controller

2019-06-25 10:28发布

我有一个List <>与控制器采取行动的一些数据绑定,我想传递一个列表<>查看与数据网格在Razor视图绑定。

我是新来MVC.Can任何一个可以帮助我如何传递,如何在视图访问。

Answer 1:

将数据传递到图是简单的传递对象的方法。 看看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>
}


Answer 2:

我这样做;

在控制器:

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>

希望能帮助到你



Answer 3:

您可以使用动态对象ViewBag从控制器数据传递到视图。

以下添加到您的控制器:

ViewBag.MyList = myList;

然后,您可以从您的视图存取权限吧:

@ViewBag.MyList

// e.g.
@foreach (var item in ViewBag.MyList) { ... }


Answer 4:

  1. 创建一个包含您的列表中,您需要为视图的模式和其他的东西。

    例如:

     public class MyModel { public List<string> _MyList { get; set; } } 
  2. 从操作方法把你想要的清单示范, _MyList属性,如:

     public ActionResult ArticleList(MyModel model) { model._MyList = new List<string>{"item1","item2","item3"}; return PartialView(@"~/Views/Home/MyView.cshtml", model); } 
  3. 在您的视图访问模型如下

     @model MyModel foreach (var item in Model) { <div>@item</div> } 

我认为这将有助于启动。



文章来源: How to pass List from Controller to View in MVC 3