我一直在尝试使用扩展方法创建自定义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));
}