skip to Main Content

I’m working with a .cshtml file in visual studio, the first seconds after I open the file everything seems normal, but after I write some letters Visual Studio starts writing 4 characters for each pressed key…
Example of output when error occurs

I’m working with Visual Studio 2022 V17.2.5 (Community edition), ASP.NET Framework V4.6.1 and using Razor pages. Assuming its a bug i’m reporting it as one to Microsoft ¿Has anyone run with the same problem and a solution to work around it?

This is the entire .cshtml file:

@model CataRefacciones
@using SCORE.Helpers
@using SCORE.Models
@using X.PagedList

@{
    string idTipos = "ListaTipos";
    var listaTipos = (IEnumerable<SelectListItem>)ViewBag.ListaDeTipos;
    string idCodigos = "ListaCodigos";
    var listaCodigoSAT = (IEnumerable<SelectListItem>)ViewBag.ListaDeCodigos;
    string idMarcas = "ListaMarcas";
    var listaMarcas = (IEnumerable<SelectListItem>)SCOREEntitiesHelper.ListaMarcasRefacciones();
    var listaUniAlmacenaje = (IEnumerable<SelectListItem>)ViewBag.ListaUniAlmacenaje;
    string CodigoSAT = Model.CODSAT.ToString();
    bool esVistaCreacion = ViewBag.AccionStd == CataAcciones.AccionesStd.Agregar;

    // Necesitamos guardar la lista de modelos, guardaremos un string con los ids separados por coma...
    ViewBag.nameListaModRef = Html.FieldName(model => model.ListaIdsModelos);
}

@Html.HiddenFor(model => model.ListaIdsModelos)

@Html.HiddenFor(model => model.IDREFACCION)
@Html.HiddenFor(model => model.IDPROVEEDOR) @*Identifica al proveedor por defecto*@
@Html.HiddenFor(model => model.IDPRESENTACIONDEFECTO) @*Identifica a la presentación por defecto*@

<div class="form-horizontal">
    <div class="container-fluid">
        @Html.ValidationSummary(false, string.Empty, new { @class = "text-danger" })
        <h6>General</h6>
        @{
            object additionalViewData = new
            {
                htmlAttributes =
                         new { @class = "form-control", @onchange = string.Format("ValidarCodigo(this, {0})", Model.IDREFACCION) }
            };
        }
        <div class="row">
            @Html.EtiquetaYControl(model => model.CODIGO, "col-lg-2 coooollll----mmmmdddd----1111", additionalViewData)
            @Html.EtiquetaYControl(model => model.TIPOPRODUCTO, "col-lg-2", additionalViewData)
            @Html.EtiquetaYTextArea(model => model.DESCRIPCION, "col-lg-5")
            @Html.EtiquetaYControl(model => model.ACTIVO, "col-md-1 col-xs-4")
            @Html.EtiquetaYControl(model => model.ORIGINAL, "col-md-1 col-xs-4")
            @Html.EtiquetaYControl(model => model.AccesorioBool, "col-md-1 col-xs-4")
        </div>
        <div class="row">
            @Html.EtiquetaYLista(model => model.TIPOACCESORIO, listaTipos, "col-md-2",
                 new { @class = "form-control", @id = idTipos })
            @Html.EtiquetaYLista(model => model.IDUNIDADALMACENAJE, listaUniAlmacenaje, "col-md-2",
                 new { @onchange = "", @class = "form-control combobox captura-estricta" }, "Unidad de control de inventario para esta refacción")
            @Html.EtiquetaYLista(model => model.MarcaSinEspacios, listaMarcas, "col-md-2",
                 new { @class = "form-control combobox ancho-sin-limite", @id = idMarcas })
            @Html.EtiquetaYLista(model => model.CodSatString, listaCodigoSAT, "col-md-2",
                 new
                 {
                     // Marcamos el campo como requerido en este punto. No lo hacemos en el modelo de refacción
                     // ya que esto generaría errores durante procesos de guardado automáticos (como lo es
                     // la configuración de presentaciones y unidad de almacenaje desde pantalla de detalles)
                     @class = "form-control combobox ancho-sin-limite",
                     @id = idCodigos,
                     @onchange = "javascript:onChangeCodSAT(g_refaccion)"
                 }, null, "requerido")
            @Html.EtiquetaYTextArea(model => model.DESCODSAT, "col-md-4")
        </div>
        <br />
        @* Pills de selección de tabs. *@
        <ul class="nav nav-tabs" role="presentation">
            <li class="active">
                <a href="#sucursales" data-toggle="tab">
                    <span class="glyphicon glyphicon-home" title="Sucursales" rel="tooltip"></span>
                    <span class="hidden-sm hidden-xs">Sucursales</span>
                </a>
            </li>
            <li>
                <a href="#proveedores" data-toggle="tab">
                    <img src="~/images/proveedores.png" height="20" title="Proveedores" rel="tooltip" />
                    <span class="hidden-sm hidden-xs">Proveedores</span>
                </a>
            </li>
            <li>
                <a onclick="javascript:ClickTabModelos();" href="#modelos" data-toggle="tab">
                    <img src="~/images/modelos.png" height="20" title="Modelos" rel="tooltip" />
                    <span class="hidden-sm hidden-xs">Modelos</span>
                </a>
            </li>
            <li>
                <a href="#similares" data-toggle="tab">
                    <img src="~/images/similares.png" height="20" title="Similares" rel="tooltip" />
                    <span class="hidden-sm hidden-xs">Similares</span>
                </a>
            </li>
            <li>
                <a href="#kardex" onclick="g_refaccion.actualizarTablaKdx()" data-toggle="tab">
                    <img src="~/images/kardex.png" height="20" title="Kárdex" rel="tooltip" />
                    <span class="hidden-sm hidden-xs">Kárdex</span>
                </a>
            </li>
        </ul>
        <br />
        <div class="tab-content">
            <div id="sucursales" class="tab-pane active">
                @Html.Partial("Edicion/EditSeccionSucursales")
            </div>
            <div id="proveedores" class="tab-pane">
                @* Proveedores *@
                <div id="relacion_prov_ref">
                    @Html.Partial("RefaccionProveedor", Model.rlnProveedores_Refacciones.OrderBy(r => r.CataProveedores.RAZONSOCIAL).ToPagedList(1, 10))
                </div>

                @*Sección de modales*@
                @Html.Partial("RefaccionProveedorModalesYRegistros")
            </div>
            <div id="modelos" class="tab-pane">
                @* Modelos *@
                @Html.Partial("RefaccionModelo", Model.ParaModRefacciones.ToPagedList(1, 100))

                @if (!esVistaCreacion)
                {
                    <div id="modelos_en_OT">
                        @*Para los modelos en ordenes de trabaja cargaremos un mensaje de espera, la sección cargará una vez renderizada la pantalla*@
                        <div class="container">
                            <div class="alert alert-info">
                                <h5>Cargando modelos en ordenes de trabajo...</h5>
                            </div>
                        </div>
                    </div>
                }
            </div>
            <div id="similares" class="tab-pane">
                @Html.Partial("Edicion/EditRefaccionesSimilares", Model)
            </div>
            <div id="kardex" class="tab-pane">
                @Html.Partial("KardexRefaccionSucursal", Model)
            </div>
        </div>
    </div>
</div>

Thanks!

2

Answers


  1. Chosen as BEST ANSWER

    I tried disabling some extensions as @Logarr suggested and found out the GitHub Copilot extension was causing the issue, then I disabled the 'Enable For HTMLProjection' option on the copilot quick menu and the abnormal behaviour stopped occurring...

    Disabling 'Enable for htmlprojection' option

    Still don't know why the issue only happened in certain cshtml files, hope this helps someone facing the same problem.


  2. I tried to repro this and it doesn’t seem like Copilot causes this issue anymore. Please try again with the latest version of the extension on your cshtml file!

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search