none
Partial View Control Genérico RRS feed

  • Pregunta

  • Buenos días:

    Os comento mi problema: Tengo que hacer un control genérico en una vista parcial que consiste en un dropdownList de paises que guardo en mi bd. Este control lo voy a utilizar en muchos formularios, por ejemplo: regiones, barcos, usuarios...

    Pues bien, estoy utilizando la librería Kendo con el control ComboBoxFor el cual declaro así 

    @(Html.Kendo().ComboBoxFor(model => model.CountryCode)

    Todos los modelos que accedan a este control, tendran un campo que se llame "CountryCode"

    El problema que tengo es que tengo que definir arriba de la pagina un @model para que no me salte ninguna excepción pero yo no le quiero declarar ninguno concreto porque puedo entrar desde el formulario de usuario, barcos, regiones... y no se cual voy a recibir en cada momento.

    Me he vuelto un poco loco buscando soluciones y lo mas parecido a una solución que he encontrado es crear un modelo intermedio... pero tampoco me sirve porque utilizaría dos modelos en una pagina y entonces salta la excepción.

    ¿Se os ocurre que puedo hacer? ¿No puedo heredar el modelo de la vista padre?

    Os pongo parte del código que estoy utilizando

    En el Formulario padre llamo al partial así:

    <div class="editor-field">
                    <script>
                        function onAdditionalData() {
                            return {
                                text: $("#CountryCode").val()
                            };
                        }
                    </script>
                    @Html.Partial("~/Areas/mod_Forwarding/Views/Shared/EditorTemplates/_CountryComboBoxFor.cshtml")
                    @Html.ValidationMessageFor(model => model.CountryCode)
                </div>

    Partial View:

    <script>
        function onAdditionalData() {
            return {
                text: $("#CountryCode").val()
            };
        }
    </script>
    @(Html.Kendo().ComboBoxFor(model => model.CountryCode)
            .Name("CountryCode")
            .DataTextField("Name")
            .DataValueField("Id")
            .Placeholder("Select Country...")
            .AutoBind(false)
            .MinLength(2)
            .Filter("contains")
            .DataSource(source => {
                source.Read(read =>
                {
                    read.Action("GetCountriesForComboBox", "Country");
                })
                .ServerFiltering(true);
            })
    )

    en este bloque es donde me da fallo porque no encuentra un modelo.

    Gracias de antemano por sus respuestas y espero que me puedan ayudar.

    martes, 30 de julio de 2013 11:35