No soy capaz de crear etiquetas y cuadros de texto, utilizando el modelo, en mi opinión, con los ayudantes html.

Mi Punto De Vista De La Sintaxis:

  @using (Ajax.BeginForm("RoomsAvail",new AjaxOptions
                                {
                                  UpdateTargetId = "RoomsAvailData",
                                  InsertionMode ="InsertionMode.Replace"
                                }))                                                                                                             
 {
    <input type='text' id="Checkin" class="form-control datepicker" />
    <input type='text' id="Checkout" class="form-control datepicker" />
    <button type="submit" value="Search"></button>
 }
@model IEnumerable<RoomAvailabilitySummary>
 <div>
     @Html.LabelFor(model=>model.ARRDAT)
 </div>
 <div>
     @Html.EditorFor(model=>model.Name)
 </div>

Mi Modelo

public class RoomAvailabilitySummary
{
   public string ARRDAT{get;set;}
   public string Name{get;set;}
}

Después de hacer como este, en mi opinión no es la representación del modelo de propiedades en mi punto de vista para mostrar el texto de las etiquetas y el error como «Syste.De la colección.Genérica.IEnumerable no contiene la definición de ARRDAT»

Por qué no soy capaz de renderizar el modelo de propiedad en mi ayuda html para mostrar el nombre con la ayuda de html helper?

Y también quiero acceder a mi modelo de los valores en el controlador. ¿Cómo puedo hacer esto?

  • ¿Cómo puede usted acceder directamente a un campo a través de una lista o IEnumerable !
  • Así que, ¿cuál es la alternativa para esto?
InformationsquelleAutor Arjun | 2014-04-14

2 Comentarios

  1. 3

    Su modelo es:

    @model IEnumerable<RoomAvailabilitySummary>

    Y tratando de acceder a Name en IEnumerable:

     <div>
         @Html.EditorFor(model=>model.Name)
     </div>

    Debe utilizar foreach si es IEnumerable O simplemente @model RoomAvailabilitySummary si es que no IEnumerable

    Añadido:

    Algo como esto debería funcionar:

    @model IEnumerable<RoomAvailabilitySummary>
    
    @if(Model.Count() > 0)
    {
     <div>
         @Html.LabelFor(model=>Model.First().Name)
     </div>
    }
    
    @foreach (var item in Model)
    {
     <div>
         @Html.EditorFor(model=>item.Name)
     </div>
    }
    • Ya, estoy a mostrar los datos en el mismo punto de vista de la base de datos con Entity framework. así que, debo usar IEnumerable a enumerar mis contenidos. El único problema no es capaz de mostrar el nombre con la ayuda de modelos de propiedad. Por qué?
    • Usted tratando de encontrar Name propiedad en IEnumerable, no en RoomAvailabilitySummary clase.
    • Estoy realmente lo siento, ya estoy learing MVC. Por favor ayuda me a mostrar tanto las propiedades del modelo(para html ayudantes pantalla nombre, etc) y los datos utilizando el modelo…que va a ser realmente útil para mí.
    • Mira Ashok Damani respuesta, poner el div en el bloque de código y cambiar el segundo model a room
    • Pero, si me gusta esta se muestran varias veces mi elemento. aquí, el nombre de la etiqueta quiero mostrar una vez con la ayuda de modelos de propiedad y quiere mostrar el nombre varias veces usando foreach. Cómo hacerlo? Esperanza, yo estoy claro en esto. Si no, dime por favor.
    • Algo parecido he añadido?
    • Llegué a saber que yo confundido u y Ashok. Mis disculpas. He actualizado mi pregunta. Por favor, compruebe de nuevo. Quiero acceder a mi modelo de los valores en HTTPPost método para la petición ajax para enviar los parámetros de entrada(check in y check out). Por favor me ayude.
    • Si desea enviar, usted debe poner a su forma

  2. 0

    Creo que u está tratando de iterar sobre el modelo (lista):

    @model IEnumerable<RoomAvailabilitySummary>
    @Html.LabelFor(model => model[0].Name)
    @foreach(var room in Model)
    {
        <br />
        @Html.EditorFor(x => room.Name)
    }
    • Sí Ashok…Mi intención es que quiero mostrar el nombre para el nombre del valor que viene desde el DB. Como usted dijo, yo soy la iteración de mi DB contenido usando foreach. Pero, quiero mostrar mi modelo de propiedades, también en el mismo punto de vista. Sin el uso de IEnumaerate no podemos iterar los elementos. Entonces, ¿cómo proceder en esto?
    • Por favor, cambie foreach a @foreach y model a Model
    • nombre de la etiqueta quiero mostrar una vez desde el modelo de uso de la pantalla de la propiedad y el valor de nombre que viene desde el db quiero mostrar varias veces basada en el punto de conteo usando foreach. Cómo hacer esto?Esperanza, yo estoy claro en este Ashok.

Dejar respuesta

Please enter your comment!
Please enter your name here