将foreach的问题引入我的mvc

时间:2015-07-20 08:20:43

标签: c# asp.net-mvc asp.net-mvc-4 foreach

这就是我之前发布的帖子,你可以在这里看到。

must retrieve the list from the database

我试图制作我之前描述过的foreach。但这会导致问题,因为在犯错误的情况下不能运行我的foreach。

Index.cshtml

@foreach (var u in Model)
 {
    <div class="col-md-6 col-sm-6">
       <div class="plan">
          <h3>@u.Name<span>$@u.Price</span></h3>
          <p>@u.Text</p>
       </div>
    </div>
 }

undervisningController.cs

// GET: Undervisning
    public ActionResult Index()
    {

        DatabaseClasseDataContext db = new DatabaseClasseDataContext();

        var model = db.Packages.ToList();

        return View(model);
    }

index.cshtml上的顶部有i:

@model MentorOrdblind_MVC.Models.Undervisning.Undervisning

模型 Undervisning.cs

public class Undervisning
{

    public string Name { get; set; }
    public decimal Price { get; set; }
    public int Hours { get; set; }
    public string Text { get; set; }

}

3 个答案:

答案 0 :(得分:0)

您的视图是List<T>,但您的模型不是IEnumerable的类型。因此,您的视图只期望Undervisning类型的单个对象而不是集合。

使用此:

@model IEnumerable<MentorOrdblind_MVC.Models.Undervisning.Undervisning>

答案 1 :(得分:0)

将模型演示更改为:

@model IEnumerable<MentorOrdblind_MVC.Models.Undervisning.Undervisning>

此时您的模型是单个类,而不是对象列表

答案 2 :(得分:0)

始终牢记从控制器操作传递到视图的内容。如果仅从动作传递模型,则在动作的相应视图中使用模型参考。如果传递List,则在视图中使用IEnumerable模型引用。

If you pass list from action then in the view use:
@model IEnumerable<your model> in the top as reference
If you pass model without a list then use:
@model your model 

在您的情况下,您正在传递列表,因此请使用所需模型类的IEnumerable。

由于