2015-06-09 46 views
4

我有两个关于创建自定义HTML助手的问题。自定义HTML助手,什么是:这个HtmlHelper html

1)我的方法放在哪里,以便它可以与@Html一起使用?我已经想通了如何使用它像@MyCustomClass。我猜想,任何一种都可以奏效。只是好奇。

2)更重要的是什么是“这个HtmlHelper htmlHelper”?我注意到所有内置的助手(比如ActionLink)都是以这个参数开始的,但是实际上没有值传递给它。但是,当我尝试创建自己的自定义HTML帮助程序时,它似乎想要此参数的值,或者它给了我,“最佳重载方法包含多个x参数。”

我想实现this example

public static string IsSelected(this HtmlHelper html, string controllers = "", string actions = "", string cssClass = "selected") 
{ 
    ... 
} 

回答

3

你可以把你的方法在App_Code文件夹或自定义文件夹。我更喜欢创建一个名为\ Infrastructure的应用程序的主文件夹。在那之下,我创建了一个“Views”文件夹并添加了一个“ViewExtensions”类。然后当我想使用它时,我在视图的顶部添加一个“@using App.MVC.Infrastructure.Views”。

至于第2部分,“这个HtmlHelper htmlHelper”告诉C#你正在为HtmlHelper类创建一个扩展方法。见https://msdn.microsoft.com/en-us/library/bb383977.aspx

http://develoq.net/2011/how-to-create-custom-html-helpers-for-asp-net-mvc-3-and-razor-view-engine/