我正在尝试在C#中为HtmlHelper类创建一个扩展方法。我已经阅读了它的MSDN页面,我确信我引用了正确的命名空间。我想知道我做错了什么。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; //Correctly referencing the necessary namespaces, right?
namespace MvcApplication1.HelperMethods
{
public static class NavigationalMenu
{
public static string MyMenu(this HtmlHelper helper)
{
CategoryRepository categoryRepo = new CategoryRepository();
var categories = categoryRepo.FindAllCategories();
foreach (Category c in categories)
{
helper.RouteLink(blablabla); //Construct links and return them.
}
//helper.RouteLink doesn't show up! C# wipeouuuuuttttt.
//It's as if 'helper' doesn't have the RouteLink method there.
}
}
}
第一次在C#中编程时发生这种情况。其他人遇到这个问题吗?
答案 0 :(得分:4)
根据MSDN:
HtmlHelper类的扩展是 位于System.Web.Mvc.Html中 命名空间。这些扩展添加了帮助 创建表单的方法,渲染 HTML控件,渲染部分 视图,输入验证等。
尝试包含System.Web.Mvc.Html
命名空间。 LinkExtensions.RouteLink给出了它的名称空间(它表示它位于System.Web.Mvc.dll
中,只是在不同的名称空间中)。
答案 1 :(得分:3)
您需要为System.Web.Mvc
引用HtmlHelper
,但扩展名位于System.Web.Mvc.Html
。
答案 2 :(得分:0)
您的命名空间可能有误。试试using System.Web.Mvc.Html
;
http://msdn.microsoft.com/en-us/library/system.web.mvc.htmlhelper(VS.90).aspx
答案 3 :(得分:0)
我不确定添加命名空间请参阅resukt System.Web.Mvc.Html