我正在为MVC Web应用程序中的HtmlHelper类创建扩展方法。什么都没有显示,甚至没有显示默认的InputExtensions。
public static class HtmlHelpers
{
public static void RegisterScriptInclude(this HtmlHelper htmlhelper, string script)
{
if (!RegisteredScriptIncludes.ContainsValue(script))
{
RegisteredScriptIncludes.Add(RegisteredScriptIncludes.Count, script);
}
}
public static string RenderScripts(this HtmlHelper htmlhelper)
{
var scripts = new StringBuilder();
foreach (string script in RegisteredScriptIncludes.Values)
{
scripts.AppendLine("<script src='" + script + "' type='text/javascript'></script>");
}
return scripts.ToString();
}
private static SortedList<int, string> RegisteredScriptIncludes
{
get
{
SortedList<int, string> value = (SortedList<int, string>)HttpContext.Current.Items["RegisteredScriptIncludes"];
if (value == null)
{
value = new SortedList<int, string>();
HttpContext.Current.Items["RegisteredScriptIncludes"] = value;
}
return value;
}
}
}
扩展方法也未显示在代码中。
他们在哪里?
答案 0 :(得分:9)
您是否忘记了using
声明?具体而言,您需要“using path.to.my.namespace;
”来获取扩展方法。
答案 1 :(得分:3)
另一个要检查的显而易见的事情是,如果有人发现这篇文章,就会忘记扩展方法的第一个参数中的“this”关键字。如果你忘记了,那么编译器可以帮助你做的事情不多!