Estoy siguiendo el MVC Tienda de Música de tutorial, pero sólo me he metido un poco atascado con la ayuda Html en la parte 5: Parte 5.

Me parece que lo han seguido correctamente (por favor, corrígeme si me equivoco 🙂 )…sin embargo estoy recibiendo el siguiente error:

‘musicStoreMVC.Los ayudantes.HtmlHelper’:
tipos estáticos no pueden ser utilizados como
parámetros

Aquí es el código de mi aplicación:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace musicStoreMVC.Helpers
{
    public static class HtmlHelper
    {
        public static string Truncate(this HtmlHelper helper, string input, int length)
        {
            if (input.Length <= length)
            {
                return input;
            }
            else
            {
                return input.Substring(0, length) + "...";
            }
        }
    }
}

Si alguien puede ver lo que estoy haciendo mal, o si hay más información es necesaria, yo estaría muy agradecido por los consejos!! Gracias.

InformationsquelleAutor 109221793 | 2011-01-04

5 Comentarios

  1. 13

    Simplemente cambie el nombre de la estática HtmlHelper clase a HtmlHelperExtensions.

    • Mismo problema, pero no está funcionando para mí. Quiero extender Microsoft.VisualStudio.TestTools.UnitTesting.Assert. Cambiar el nombre de la clase a nada también produce el mismo error…
    • Lo consiguió, porque los métodos de extensión no puede ser añadido a static class stackoverflow.com/questions/249222/…
  2. 1

    Tienes un conflicto con el nombre de – la estática HtmlHelper que se declara en el código de ejemplo y la System.Web.Mvc.HtmlHelper que es la clase que usted realmente desea crear el método de extensión para. Simplemente cambie el nombre de la clase a HtmlHelpers (como lo es en los enlaces de tutorial). El camino es, por ahora, se están tratando de implementar un método de extensión en la clase estática que supuestamente no funciona.

  3. 1

    Es porque estás nombrando a su clase de extensión HtmlHelper. En truncate, a continuación, intenta agregar un método de extensión para una clase estática, que no se puede.

    Una solución sencilla es cambiar el nombre de su HtmlHelper a algo diferente.

  4. 1

    La this HtmlHelper helper dice que Truncate() debe actuar como si se tratara de un método de instancia HtmlHelper, pero usted ha declarado HtmlHelper como una clase estática, que no puede tener instancias.

    Si lo que estamos tratando de hacer es crear un método de extensión en diferentes HtmlHelper clase, como otros han sugerido, cambiar el nombre de esta clase estática. Si usted simplemente necesita el método estático, deshacerse de la this HtmlHelper helper parámetro. No lo va a utilizar de todos modos.

  5. 0

    Eliminar el uso de parte

    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 

    y agregar

    using System.Web.Mvc;

Dejar respuesta

Please enter your comment!
Please enter your name here