我正在构建一个 ASP.Net MVC 网站。我决定将 Web、模型和控制器分离到同一个解决方案中的不同项目中,这些项目相互引用,而不是在一个项目中包含所有内容。
引用是这样的:
Web ---[references]---> Controller ---[references]---> Model
现在我想向 HtmlHelper 类添加 2 个自定义方法——它们被称为“IncludeScript”和“IncludeStyle”。它们每个都接受一个字符串参数,并分别生成一个脚本或链接标签。
根据网络上的文档,我创建了一个扩展器类,并编写了这两个方法并编译了应用程序。
现在,当我进入 Public.Master 页面(这是我的主要母版页,也是我打算使用这些方法的地方之一)时,我可以输入如下代码:
<%= Html.IncludeScript("\js\jquery.js") %>
IntelliSense 采用 IncludeScript 方法并向我显示语法就好了。所以我希望一切都能正常工作。
但事实并非如此。
一切都可以编译,但只要我运行应用程序,就会从 Default.aspx.cs 的第 14 行收到以下运行时错误:
c:\\Projects\\PhoneReel\\PhoneReel.Web\\Views\\Shared\\Public.Master(11): error CS0117: 'System.Web.Mvc.HtmlHelper' does not contain a definition for 'IncludeScript'
这是发生错误的代码行:
httpHandler.ProcessRequest(HttpContext.Current);
任何想法这里可能出了什么问题?