He empezado a utilizar MVC y he puesto en marcha un proyecto sencillo, que tiene un controlador que devuelve un valor de entity FrameWork. Tengo un controlador para la página de índice que la instalación de visual studio como predeterminado en su plantilla.

Tengo la esperanza de que este valor será devuelto a la página de índice del sitio web.

El código de controlador de

 MISEntities db = new MISEntities();

    public ActionResult Index()
    {
        ViewBag.Message = "Real Time Production";

        var scrap = from r in db.tbl_dppIT
                        select r.CastGood; 

        return View(scrap);
    }

¿Cómo puedo acceder a la var rechazo utilizando navaja de afeitar?
He mirado en el viewbag método y otros sintaxis de afeitar, pero no puedo parecer para encontrar cómo puedo acceder a este elemento.

InformationsquelleAutor Inkey | 2013-08-28

3 Comentarios

  1. 5

    Sólo porque el controlador de la variable se declara utilizando la var palabra clave no significa que no tienen un tipo. Más bien, este le dice a C# que el tipo debe ser inferida por su contexto (en este caso, un IEnumerable<T> de cualquier tipo tbl_dppIT.CastGood es).

    Así, las otras tres respuestas son parcialmente correctos, es necesario definir el tipo de modelo que se pasa en la Vista a través de la maquinilla de afeitar de la palabra clave @model, como se nota por las otras respuestas:

    //In your view Razor:
    @model IEnumerable</* type of CastGood */>

    Hay una alternativa a los tres respuestas ya se ha especificado, y que se está pegando el scrap variable en el ViewBag en el controlador:

    ViewBag.Scrap = scrap;

    Al acceso de la propiedad expando Scrap de la ViewBag en el punto de vista, sería un objeto dinámico, por lo que no consigue la ayuda de IntelliSense. Pero, es de otra manera, sólo para que usted saber que todas las posibilidades.

    ACTUALIZACIÓN:

    Basado en tus comentarios a continuación, se ve como si CastGood es una columna de base de datos que puede ser null y cuyo tipo es int, entonces usted quiere:

    @model IEnumerable<int?>

    HTH.

    • Cuando agrego el siguiente «@modelo IEnumerable<MvcApplication1.Modelos.tbl_dppIT>» me sale este error’el de los elementos del modelo aprobado en el diccionario es de tipo ‘System.De datos.Objetos.ObjectQuery1[System.Nullable1[Sistema.Int32]]’, pero este diccionario se requiere un elemento de modelo de tipo ‘System.Las colecciones.Genérica.IEnumerable`1[MvcApplication1.Modelos.tbl_dppIT]’.
    • hmm, intente @model MvcApplication1.Models.tbl_dppIT. Que ya puede ser un IEnumerable<T> de EF (o lo que sea ORM que esté usando).
    • sigue recibiendo el error :/El elemento de modelo aprobado en el diccionario es de tipo ‘System.De datos.Objetos.ObjectQuery1[System.Nullable1[Sistema.Int32]]’, pero este diccionario se requiere un elemento de modelo de tipo ‘MvcApplication1.Modelos.tbl_dppIT’.
    • OK, la respuesta es simple, usted necesita saber el .Tipo de red que se devuelve desde la consulta cuando se establezca la scrap variable en el controlador. Independientemente de que tipo es, que lo que escriba su @model debe ser. O eso, o el uso de la ViewBag–pero, de nuevo, sin compatibilidad con IntelliSense, ya que es un dynamic.
    • Mirando el código, yo diría que su @model debe ser de tipo IEnumerable</* type of CastGood /*> ya que es lo que está siendo devuelto por la consulta de LINQ configuración scrap en el controlador. Por lo tanto, si CastGood es un int, entonces IEnumerable<int>. Si CastGood es un objeto concreto, entonces IEnumerable<CastGood>, etc.
    • Me han pasado este Sistema.De datos.Objetos.ObjectQuery1[System.Nullable1[Sistema.Int32]], Pero su aspecto de este Sistema.Las colecciones.Genérica.IEnumerable`1[Sistema.Int32]
    • por favor, ver mi respuesta actualizada.

  2. 1

    Es necesario declarar el tipo de la variable de chatarra como el modelo dentro de la Vista mediante la @model palabra clave.

    //View.cshtml
    
    @model IEnumerable<Namespace.ScrapType>
    
    @foreach(var item in Model) {
        <p>@item.SomeProperty</p>
    }

    Ver Parte 3: puntos de vista y ViewModels de la MVC en la Tienda de Música de ejemplo.

  3. 1

    Necesita fuertemente escriba su punto de vista y que tendrá disponibles como el Modelo de instancia.

    @model IEumerable<MyType>
    
    @foreach(var item in Model)
    {
        @*do something with it *@
    }

Dejar respuesta

Please enter your comment!
Please enter your name here