0

我创建了一个名为 HTMLRenderer 的新类,我从我的 aspx 视图代码中调用它

 namespace Golf.Content
 {
     public static class HtmlRenderer
     {
         public static void RenderHtmlPage(HtmlHelper helper_, string path_)
         {
             var reader = new StreamReader(path_);
             var contents = reader.ReadToEnd();
             helper_.ViewContext.HttpContext.Response.Write(contents);
         }
     }
 }

我正在使用它

<% HtmlRenderer.RenderHtmlPage(Html, Server.MapPath("http://www.salemgolfclub.org/Members/newletters/welcome.html" ) ); %>

我得到了错误

d:\Adam\Code\CSharp\Asp.net\Adam\Views\Home\Index.aspx(2): 错误 CS0234: 命名空间 'Golf' 中不存在类型或命名空间名称 'Content' (您是否缺少装配参考?)

构建编译并且 Content 命名空间是否存在?

关于这里出了什么问题的任何建议

4

2 回答 2

2

将此行添加到您的视图中(SO - 如何在 ASP.NET MVC 视图中使用扩展方法?):

<%@ Import Namespace="Golf.Content" %>

然后使用Html.RenderHtmlPage()

<% Html.RenderHtmlPage(Server.MapPath("http://www.salemgolfclub.org/Members/newletters/welcome.html")); %>
于 2009-07-19T16:27:04.843 回答
2

您也可以将其添加到 web.config,这样您就不必将其添加到每个页面。这篇文章讨论了注册控件http://haacked.com/archive/2006/11/14/Register_Custom_Controls_In_Web.config.aspx

但命名空间以类似的方式工作。只需使用该部分而不是控件。

于 2009-07-19T18:17:51.190 回答