none
colocar varios DropDownList en una sola vista en MVC 2 RRS feed

  • Pregunta

  • Necesito colocar en una sola vista varios DropDownList que me muestren datos de tablas de una base que esta en sql server 2012 pero no se como hacer al momento tengo este codigo pero me sale un error de que el valor no puede ser nulo en la vista ascx. Ayuda!!

    Dentro del modelo tengo lo siguiente

    public class CampaniasViewModel
        {
            public Campanias Campanias { get; set; }

            public List<GM_OPERACION> GM_OPERACION { get; set; }

            public List<GM_TIPOCAMP> GM_TIPOCAMP { get; set; }

            public List<GM_FRECUENCIA> GM_FRECUENCIA { get; set; }    
        }

    En la vista

    <%@ Import Namespace="Sistema_Gestor_de_Mensajes"%>
    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Sistema_Gestor_de_Mensajes.ViewModel.CampaniasViewModel>" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
        Create
    </asp:Content>

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
             
             

       <h2>&nbsp;</h2>
        <h2>Crear nuevo registro</h2>

            <% Html.EnableClientValidation(); %>
            <% using (Html.BeginForm()) {%>

            <fieldset>
                <legend>Datos de la pelicula</legend>
               
                 <%: Html.EditorFor(model => model.Campanias, new { GM_OPERACION = Model.GM_OPERACION })%>
                 <%: Html.EditorFor(model => model.Campanias, new { GM_TIPOCAMP = Model.GM_TIPOCAMP })%>
                 <%: Html.EditorFor(model => model.Campanias, new { GM_FRECUENCIA = Model.GM_FRECUENCIA })%>
                <p>
                    <input type="submit" value="Crear registro" />
                </p>
            </fieldset>

        <% } %>

        <div>
            <%: Html.ActionLink("Regresar al indice", "Index") %>
        </div>

    </asp:Content>

    En la vista ascx lo siguiente

    <%@ Import Namespace="Sistema_Gestor_de_Mensajes"%>
    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Sistema_Gestor_de_Mensajes.Models.Campanias>" %>

    <div class="editor-label">
                    <%: Html.LabelFor(model => model.OP_CODIGO) %>
                </div>
                <div class="editor-field">
                    <%: Html.DropDownList("OP_CODIGO", new SelectList(ViewData["GM_OPERACION"] as IEnumerable, "OP_CODIGO", "OP_DESCRI", Model.OP_CODIGO))%>
                    <%: Html.ValidationMessageFor(model => model.OP_CODIGO) %>
                </div>
                
                <div class="editor-label">
                    <%: Html.LabelFor(model => model.TC_CODIGO) %>
                </div>
                <div class="editor-field">
                    <%: Html.DropDownList("TC_CODIGO", new SelectList(ViewData["GM_TIPOCAMP"] as IEnumerable, "TC_CODIGO", "TC_DESCRI", Model.TC_CODIGO))%>
                    <%: Html.ValidationMessageFor(model => model.TC_CODIGO) %>
                </div>
                
                <div class="editor-label">
                    <%: Html.LabelFor(model => model.FR_CODIGO) %>
                </div>
                <div class="editor-field">
                    <%: Html.DropDownList("FR_CODIGO", new SelectList(ViewData["GM_FRECUENCIA"] as IEnumerable, "FR_CODIGO", "FR_DESCRI", Model.FR_CODIGO))%>
                    <%: Html.ValidationMessageFor(model => model.FR_CODIGO) %>
                </div>

    Y dentro del controlador

    public ActionResult Create()
            {
                //Creamos un objeto de nuestro nuevo modelo
                var viewModel = new CampaniasViewModel
                {
                    Campanias = new Campanias(),
                    GM_OPERACION = DB.GM_OPERACION.ToList(),
                    GM_TIPOCAMP = DB.GM_TIPOCAMP.ToList(),
                    GM_FRECUENCIA = DB.GM_FRECUENCIA.ToList()
                };
                //Devolvemos a la vista nuestro modelo personalizado.
                return View(viewModel);
            }


    • Editado jyan1989 miércoles, 16 de enero de 2013 17:03 Urgente
    miércoles, 16 de enero de 2013 16:55