自定义助手在View中不可用

时间:2014-12-09 09:44:44

标签: c# asp.net-mvc

我一直在尝试使用扩展方法创建自定义Helper,但它在视图中不可用。这是代码。

public static class MyExtensionMethods
{
    public static IHtmlString LabelWithMark(this HtmlHelper helper, string content)
    {
        string htmlString = String.Format("<label><mark>{0}</mark></label>", content);
        return new HtmlString(htmlString);
    }

    #region ToCurrency
    public static string ToCurrency(this double number, string format = "{0, 6:C}")
    {
        return string.Format(format, number);
    }

    public static string ToCurrency(this double number, int numSpaces)
    {
        string format = string.Format("{0}, {1}{2}", "{0", numSpaces, ":C}");
        return string.Format(format, number);
    }
    #endregion
}

为了测试我是否一直这样做,我还为内置类型double创建了两种扩展方法。当我定义double的新变量时,方法就在那里:

double d = 123.45;
string s = d.ToCurrency(10);

但是,我无法使用Html助手。在“视图”中,键入@Html. intellisync不会显示新的帮助程序。

编辑: 我发现当我将IHtmlString更改为MvcHtmlString并添加System.Web.Mvc;命名空间时,我可以在视图中看到新的自定义帮助器:

public static MvcHtmlString LabelWithMark(this HtmlHelper htmlHelper, string content)
{
    return new MvcHtmlString(string.Format("<label><mark>{0}</mark></label>", content));
}

0 个答案:

没有答案