Ich versuche, diesem Beispiel zu folgen, stecke aber beim Abrufen von Daten fest
Ich bekomme einen Fehler:
Compiler Error Message: CS1579: foreach statement cannot operate on variables of type 'RMA.Models.RMAs' because 'RMA.Models.RMAs' does not contain a public definition for 'GetEnumerator'
Code-Dateien unten angegeben:
RMAModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
namespace RMA.Models
{
public class RMAs
{
[Key]
public int RNumber { get; set; }
public int OrderNumber { get; set; }
}
}
DBContext Model.cs
using System.Data.Entity;
using RMA.Models;
namespace RMA.DAL
{
public class DBContext_Model:DbContext
{
public DbSet<RMAs> RMAs { get; set; }
}
}
ListController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using RMA.DAL;
using RMA.Models;
namespace RMA.Controllers
{
public class ListController : Controller
{
private DBContext_Model db = new DBContext_Model();
public ActionResult Index()
{
var items = db.RMAs;
return View(items.ToList());
}
}
}
index.cshtml
@model RMA.Models.RMAs
@{
ViewBag.Title = "List of RMAs";
}
<h2>Index</h2>
@foreach (RMA.Models.RMAs i in Model)
{
<span>@i.OrderNumber</span>
}
webconfig
<connectionStrings>
<add name="DBContext_Model"
connectionString="Server=xx\xx;Database=xxx;Integrated Security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
Ich verwende mvc3 Framework mit .NET Framework 4 auf VS2010
Ihre @ model-Anweisung sollte eine Liste von RMAs sein (der Name RMAs sollte wahrscheinlich RMA sein, da jedes Objekt eine einzelne RMA darstellt:
@model IEnumerable<RMA.Models.RMAs>