我创建了一个名为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'(你错过了装配参考吗?)
构建编译和内容命名空间是否存在?
关于这里出错的任何建议
答案 0 :(得分:2)
将此行添加到您的视图(SO - How do I use an extension method in an ASP.NET MVC View?):
<%@ Import Namespace="Golf.Content" %>
然后使用Html.RenderHtmlPage()
:
<% Html.RenderHtmlPage(Server.MapPath("http://www.salemgolfclub.org/Members/newletters/welcome.html")); %>
答案 1 :(得分:2)
您也可以将其添加到web.config,这样您就不必将其添加到每个页面。这篇文章谈到了注册控件http://haacked.com/archive/2006/11/14/Register_Custom_Controls_In_Web.config.aspx
但名称空间以类似的方式工作。只需使用该部分而不是控件。