MVC将数据传递给查看和循环

时间:2013-01-27 17:30:43

标签: for-loop asp.net-mvc-4 views action models

我对MVC感到非常困惑。

我没有任何代码可以显示,因为我不知道该怎么做。

我有一个对象

public class Name()
{
  String name="balh"
  String something="blah blah"
  //this object works fine and doesn't look like this it has the appropriate get;set;
  //use this as just an example
  //please disregard this format
} 

现在我有了

List<Name> list;//this just holds all of my objects

我需要将它们传递给视图

我一直在看模型,但我没有看到它在任何地方声明

如何在视图中循环以创建类似

的内容
<div> object1 string</div>
<div> object2 string</div>
<div> object3 string</div>
<div> object4 string</div>
<div> object5 string</div>

3 个答案:

答案 0 :(得分:2)

我们举一个例子。

型号:

public class MyViewModel
{
    public string Name { get; set; }
    public string Something { get; set; }
}

控制器:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        List<MyViewModel> model = new List<MyViewModel>();
        model.Add(new MyViewModel { Name = "some name", Something = "something" });
        model.Add(new MyViewModel { Name = "some other name", Something = "something else" });
        return View(mdoel);
    }
}

查看(~/Views/Home/Index.cshtml):

@model IEnumerable<MyViewModel>
<table>
    <thead>
        <tr>
            <th>Name</th>
            <th>Something</th>
        </tr>
    </thead>
    <tbody>
    @foreach (vat item in Model)
    {
        <tr>
            <td>@item.Name</td>
            <td>@item.Something</td>
        </tr>
    }
    </tbody>
</table>

答案 1 :(得分:1)

假设您使用列表作为模型,您的视图将如下所示:

@model List<Name>

@foreach(var item in Model) {
  <div> @item.name @item.something</div>
}

所以你的控制器动作方法可能是:

public ViewResult Index() {
  // Somehow build list which is List<Name>
  return View(list);
}
编辑:您似乎很新,所以我建议您尝试使用本教程:http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/intro-to-aspnet-mvc-3

答案 2 :(得分:1)

使用此代码

  @foreach (vat item in Model)
    {
        <tr>
            <td>@item.Name</td>
            <td>@item.Something</td>
        </tr>
    }