我想将Umbraco用作现有.net网站的CMS。 我已经转移了所有Umbraco教程/维基文章,并得出结论,在我的代码中通过Umbraco DLL使用NodeFactory是前进的方向。
但是,所有文章/ wiki /社区帮助都假设您的Umbraco安装已经是现有网站的一部分。 在我的情况下,我需要直接引用我的网站到新的Umbraco安装,这是一个简单的例子,从Umbraco Web.Config导入设置(如数据库连接字符串等..)到我的网站Web.Config或在那里从Umbraco安装中提取内容而不将其作为现有网站的一部分的更好方法是什么?
答案 0 :(得分:0)
取决于您需要的内容。我建议创建一些基本的Web服务,以提供从umbraco站点访问数据的API。 Umbraco提供基本扩展扩展,允许您轻松地提供Web服务。但你也可以连接一个ashx文件或类似的东西。我在使用odata和umbraco网站时取得了成功。
答案 1 :(得分:0)
您想要查看Umbraco / Base - 更多详细信息,请参阅以下网址以及此处引用的有关如何使用Umbraco / Base的其他页面:
答案 2 :(得分:0)
我们使用自定义404处理程序。 ASP.NET网站将处理请求,而不是返回404,然后在内容站点上查找相同的路径。如果内容存在,我们将返回该页面。如果没有,我们会返回404错误。
MVC示例
[DefaultAction("index")]
public class RescuesController : SmartDispatchController
{
private static readonly Regex headtitleRegex = new Regex("<h1>([^<]*)</>>");
public RescuesController(IApplicationContextProvider currentCustomerProvider, IConfigurationManager configurationManager) : base(currentCustomerProvider, configurationManager) { }
public void Index()
{
RenderView("rescues","content");
string pageName = Request.Uri.LocalPath;
if (pageName.EndsWith("/index"))
pageName = pageName.Substring(0, pageName.LastIndexOf("/index"));
try
{
var remoteContent = GetRemoteContent(pageName);
var matches = headtitleRegex.Match(remoteContent);
if (matches.Groups.Count > 1)
PropertyBag.HeadTitle = matches.Groups[1].Captures[0].Value;
PropertyBag.remoteContent = headtitleRegex.Replace(remoteContent, "");
} catch (WebException) {
Handle404();
}
}
public static string GetRemoteContent(string pageName)
{
return (new WebClient()).DownloadString("http://content.mysite.com/" + pageName);
}
}