我正在关注MVC音乐商店教程,但我在第5部分中遇到了Html Helper: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) + "...";
}
}
}
}
如果有人能看到我做错了什么,或者如果需要更多信息,我会很感激指针!感谢。
答案 0 :(得分:13)
只需将您的静态HtmlHelper
课程重命名为HtmlHelperExtensions
。
答案 1 :(得分:1)
您遇到名称冲突 - 您在示例代码中声明的静态HtmlHelper
和您实际想要为其创建扩展方法的类System.Web.Mvc.HtmlHelper
。只需将您的班级重命名为HtmlHelpers
(就像链接教程中一样)。它现在的方式,你试图在静态类上实现一个扩展方法,这个方法据说不起作用。
答案 2 :(得分:1)
这是因为您正在为扩展类HtmlHelper命名。在truncate
中,您尝试将扩展方法添加到静态类中,但不能这样做。
一个简单的解决方案是将您的HtmlHelper
重命名为不同的内容。
答案 3 :(得分:1)
this HtmlHelper helper
表示Truncate()
应该像HtmlHelper
上的实例方法一样,但您已将HtmlHelper
声明为静态类,可以'有实例。
如果你要做的是在另一个HtmlHelper
类上创建一个扩展方法,那么就像其他人建议的那样,重命名这个静态类。如果您只需要静态方法,请删除this HtmlHelper helper
参数。你还是不用它。
答案 4 :(得分:0)
删除使用部分
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
并添加
using System.Web.Mvc;