Estoy usando MVC 3 de Afeitar y

Por el momento estoy usando

@model MyProject.ViewModels.MyViewModel

    @foreach (var item in Model.MyProperty)
{  
    <tr>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.AdvSlotId }) |
            @Html.ActionLink("Details", "Details", new { id = item.AdvSlotId }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.AdvSlotId })
        </td>
        <td>
            @item.AdvSlotId
        </td>
        <td>
            @item.Name
        </td>
        <td>
            @item.Description
        </td>
        <td>
             @Html.CheckBox(item.IsPublished, new { @disabled = "disabled" })
        </td>
        <td>
            @item.Notes
        </td>
    </tr>    
}

El MODELO de VISTA:

namespace MyProject.ViewModels
{
    public class MyViewModel
    {
        public MyViewModel(List<AdvSlot> advSlots)
        {
            MyProperty= advSlots;
        }

        public List<AdvSlot> MyProperty { get; set; }

    }
}

Para mostrar una Casilla de Verificación para una propiedad en mi Modelo. Como estoy haciendo está mal, así que sólo puedo mostrar un texto como VERDADERO.

Podría usted por favor decirme cómo crear la Casilla de verificación con la maquinilla de Afeitar? Yo también necesitaría tener como READONLY.

Gracias por tu ayuda.

InformationsquelleAutor GibboK | 2012-07-03

4 Comentarios

  1. 38

    Debe ser algo como esto:

    @Html.CheckBoxFor(m => m.IsPublished, new { @disabled = "disabled" })

    ACTUALIZACIÓN:

    Suponiendo que la clase AdvSlot contiene una propiedad IsPublished usted puede escribir en su bucle:

    <td>
        @Html.CheckBox(item.AdvSlotId + "_IsPublished", item.IsPublished, new { @disabled = "disabled" });
    </td> 
    • Gracias LeftyX por tu comentario, me aparece un error y no puedo crear textcheckbox. podría usted por favor me ayudan? gracias
    • Por favor nota MyProperty es una Propiedad en el ViewModel alguna idea de cómo solucionarlo? gracias
    • podría usted, por favor, incluya su viewmodel así?
    • Incluido, por favor, deje que em saber si usted necesita más información, una vez más, gracias por su tiempo
    • Gracias, ahora está trabajando también he de encontrar otra solución: @Html.CheckBoxFor(x=> item.IsPublished, nuevo {@disabled = «disabled»})
    • He actualizado mi respuesta.
    • Echa un vistazo a tu HTML. La solución sería generar Identificadores duplicados.
    • Gracias Zurdo tienes razón, ahora estoy en la adopción de la solución que crear el IDENTIFICADOR único. Una vez más, muchas gracias 🙂
    • Mala solución, movilidad casillas de verificación no volver a pasar en el post.
    • Ok. Ofrecemos la solución a continuación.
    • Un par de ideas, pero aquí nada es limpio. stackoverflow.com/questions/155291/…

  2. 21
     @Html.CheckBoxFor(model => model.IsActive, new { onclick = "return false" })

    Esto debería funcionar. Sin embargo tengo un problema con @disabled = «disabled». Si hago la casilla de verificación marcada por defecto y hacer la casilla de verificación deshabilitado al mismo tiempo no lo puedo publicar con su valor. En el controlador será falsa. El uso de «return false» usuario no puede cambiar el valor y también publicará el valor que se ha fijado en la carga como por defecto.

    • Su respuesta debe ser aceptado. Si utilizamos la propiedad @disabled=»disabled», el textboxfor siempre pasa FALSO servidor
    • Hoang estoy de acuerdo con usted. Esta es una respuesta perfecta en mi opinión, como me he enfrentado a lo mismo que dijeron antes.
    • Esta es una mejor solución
    • Creo que el servidor sólo omite los valores de los controles deshabilitados; es el modelo de enlace en el servidor que inicializa la propiedad de la viewmodel para false (el predeterminado para los campos booleanos).
  3. 4

    Estoy usando MVC4, consigue el mismo efecto con una simple algo como

    @Html.DisplayFor(m => m.IsPublished)

    No hay necesidad de cuidado para seleccionar casilla de verificación o conjunto de movilidad a ti mismo. Seguro que no, si esta es una nueva característica en MVC4, así que tal vez se trabajará en MVC3 así.

  4. 0

    En su MyViewModel puede quitar el setter :

    public bool IsPublished 
    {
       get {
            //... get from db
           }
    }

    y en su Vista :

    @Html.CheckBoxFor(m => m.IsPublished, new {@disabled="disabled"})
    • Todavía tengo algunos problemas, por favor, tomar nota de mis editar
    • esta línea debería darte error @Html.Casilla de verificación(punto.IsPublished, nuevo { @disabled = «disabled» }) , tiene algunos argumentos no válidos

Dejar respuesta

Please enter your comment!
Please enter your name here