2013-01-25 70 views
2

貓我在@helper函數上創建一個委託?razor @helper返回什麼類型?

@helper DisplayCategoryTree(int? parentId) 
{  

    Func<Category, CategoryNode, MvcHtmlString> act = new Func<Category, CategoryNode, MvcHtmlString>(GetChildItem); 
    act(Category, CategoryNode); 

} 

@helper GetChildItem(Category, CategoryNode) 
{  


} 

回答

5

剃刀傭工返回System.Web.WebPages.HelperResult它實現IHtmlString這樣你就可以用這個來代替MvcHtmlString

所以這個聲明應該很好地工作:

@helper DisplayCategoryTree(int? parentId) 
{  

    Func<Category, CategoryNode, IHtmlString> act = 
     new Func<Category, CategoryNode, IHtmlString>(GetChildItem); 
    act(Category, CategoryNode); 
} 

@helper GetChildItem(Category, CategoryNode) 
{  
} 
+0

我想補充一點,我寫了深入的文章關於HTML助手,將教你幾乎一切關於他們。 http://www.simple-talk.com/dotnet/asp.net/writing-custom-html-helpers-for-asp.net-mvc/ –