Ответ 1
Просто переименуйте свой статический класс HtmlHelper
в HtmlHelperExtensions
.
Я следую учебнику MVC Music Store, но я только немного застрял с Html Helper в части 5: Part 5.
Кажется, я до сих пор правильно следил за ним (пожалуйста, поправьте меня, если я ошибаюсь:))... однако я получаю следующую ошибку:
'musicStoreMVC.Helpers.HtmlHelper': статические типы не могут использоваться как Параметры
Вот код из моего приложения:
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) + "...";
}
}
}
}
Если кто-то может понять, что я делаю неправильно, или если вам нужна дополнительная информация, я был бы благодарен за указатели! Спасибо.
Просто переименуйте свой статический класс HtmlHelper
в HtmlHelperExtensions
.
У вас возник конфликт имен - один статический HtmlHelper
, который вы укажете в примере кода и System.Web.Mvc.HtmlHelper
, который является классом, на котором вы действительно хотите создать метод расширения. Просто переименуйте свой класс в HtmlHelpers
(как в связанном учебнике). Как сейчас, вы пытаетесь реализовать метод расширения для статического класса, который, предположительно, не работает.
Это потому, что вы назовете свой класс расширения HtmlHelper. В truncate
вы затем пытаетесь добавить метод расширения к статическому классу, который вы не можете.
Простое решение - переименовать ваш HtmlHelper
в нечто другое.
this HtmlHelper helper
говорит, что Truncate()
должен действовать так, как если бы это был метод экземпляра на HtmlHelper
, но вы объявили HtmlHelper
как статический класс, который не может иметь экземпляры.
Если то, что вы пытаетесь сделать, это создать метод расширения в другом классе HtmlHelper
, а затем, как предложили другие, переименуйте этот статический класс. Если вам нужен только статический метод, избавитесь от параметра this HtmlHelper helper
. Вы все равно не используете его.
Удалить используемую часть
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
и добавьте
using System.Web.Mvc;