none
Al llamar una vista desde su controlador por [HttpPost] me la muestra dentro de un tag <pre> en MVC3 RRS feed

  • Pregunta

  • Hola gente, espero alguien pueda darme una mano con esto, porque hace varios dias que estoy dando vueltas con este tema.

    Dentro de mi proyecto si un controlador llama a su vista por HttpPost me muestra el codigo html dentro de un tag <pre style="word-wrap: break-word; white-space: pre-wrap;">.

    En la vista tengo una grilla y un formulario y al darle al submit la idea es que el controlador vuelva a llamar a la misma vista para que el usuario pueda insertar otro registro. Al momento de llamar nuevamente la vista me muestra todo dentro de ese tag.

    El codigo del controlador es el siguiente:

    [HttpPost]
    public ActionResult EditContent(ContenidoModel contenido)
    {
    	IContenidoService cs = ContenidoService.CreateIContenido();
    
            if (ModelState.IsValid)
            {
            	cs.Insert(contenido);                   
            }
            ViewBag.List = cs.GetContenidoList(contenido.SmsPalabraId);
            return View(contenido);
    }

    El insert se realiza bien y la lista se carga correctamente tambien.

    El codigo de la vista es el siguiente (soy muy novato en el tema de la programacion de paginas web, ni hablar de MVC)

    @model Agregadores.Models.ContenidoModel
    @{    
        ViewBag.Title = "Contenidos";
    }
    
    <script language="javascript" type="text/javascript">
        var FechaPublic;
        $("form").submit(function (event) { eval($(this).attr("onsubmit")); return false; });
    
        jQuery(document).ready(function () {
    
            FechaPublic = $('#FechaPublic');
    
            /************Controls***************/
            $('#loader').hide();
    
            FechaPublic.datepicker({
                dateFormat: '@Html.ConvertDateFormat("dd/MM/yyyy")',
                minDate: new Date()
            });
    
            $("#btnAgregarContenido").click(
            function () {
                if (!$('#chkCB').is(':checked')) {
                    FechaPublic = $("#FechaPublic");
                    FechaPublic.datepicker();
    
                    var hoy = new Date();
                    var date = new Date(FechaPublic.datepicker('getDate'));
    
                    if (date < hoy) {
                        alert("La Fecha de Publicación debe ser mayor a la fecha de hoy.");
                        return false;
                    }
                    else {
                        return true;
                    }
                }
            });
    
            $("#chkCB").click(
            function () {
                var checked = $("#chkCB").is(':checked');
    
                if (checked) {
                    $("#FechaPublic").attr("disabled", true);
                }
                else {
                    $("#FechaPublic").attr("disabled", false);
                }
            });
        });
    </script>
    
    <a id="volver" href="@Url.Action("Detail", "Home", new {id = Model.SmsPalabraId, idPackService= Model.PackServiceId})" title="Ir a la página anterior">Volver</a>
    
    <div id="loader">
        <img alt="Cargando..." src="@Url.Content("~/Content/images/ajax-loader.gif")" />
    </div>    
        
    @Html.Partial("EditContentList")
    
    <div id="FormContenidos">
         @using (Html.BeginForm("EditContent", "Home"))
        {       
             
            <fieldset>
                <legend>Nuevo contenido para la palabra: @Model.Palabra</legend>
                <div class="div-form">
                    @Html.LabelFor(x => x.FechaPublic)
                    @Html.EditorFor(x => x.FechaPublic)
    
                    @if (ViewBag.CB != 0)
                    {
                        @Html.CheckBox("chkCB", false, new { @title = "Ingresar fecha en NULL" })
                        <span>Ingresar fecha NULL</span>
                    }
                    @Html.ValidationMessageFor(x => x.FechaPublic)
                </div>
                
                <div class="div-form">
                    @Html.LabelFor(x => x.Texto) 
                    @Html.TextAreaFor(x => x.Texto, new { @maxlength = "140" })
                    @Html.ValidationMessageFor(x => x.Texto) 
                </div>
    
                <div class="div-form">
                    @Html.HiddenFor(x => x.smsPalabraPackServiceId)
                </div>
    
                <div class="div-form">
                    @Html.HiddenFor(x => x.SmsPalabraId)
                    @Html.HiddenFor(x => x.Palabra)
                    @Html.HiddenFor(x => x.PackServiceId)
                </div>
    
                <input type="submit" id="btnSubmit" name="btnSubmit" value="Agregar Contenido" />
            </fieldset>
        }
    </div>
    

    Este problema lo tengo con cualquier vista que "se llame a si misma" desde su controlador.

    Espero haber sido claro. Gracias de antemano, saludos.

    martes, 22 de mayo de 2012 13:15