我已经开始构建一个完全不专业的博客引擎,并且不会被任何人使用。所以,用简单的英语,我不能告诉你继续为自己运行,你会很高兴。
您可能会看到我到目前为止编写的完整代码:
https://github.com/tugberkugurlu/MvcBloggy
虽然现在我正在研究 DAL ,但我也尝试放下我需要做的事情。我被困在这里的一点是如何处理博客引擎的主题选择。
到目前为止,我不确定你们有没有做过这样的事情。如果你能提供一种方法,我将不胜感激。
答案 0 :(得分:1)
我建议您查看 NBlog temable blog engine
https://github.com/ChrisFulstow/NBlog
特别要看一下 ThemeableRazorViewEngine.cs
类using System.Web.Mvc;
using NBlog.Web.Application.Service;
namespace NBlog.Web.Application.Infrastructure
{
public class ThemeableRazorViewEngine : RazorViewEngine
{
private readonly IThemeService _themeService;
public ThemeableRazorViewEngine(IThemeService themeService)
{
_themeService = themeService;
base.ViewLocationFormats = new[]
{
_themeService.Current.BasePath + "/Views/{1}/{0}.cshtml",
_themeService.Current.BasePath + "/Views/Shared/{0}.cshtml",
"~/Themes/Default/Views/{1}/{0}.cshtml"
};
base.PartialViewLocationFormats = new string[] {
_themeService.Current.BasePath + "/Views/{1}/{0}.cshtml",
_themeService.Current.BasePath + "/Views/Shared/{0}.cshtml",
"~/Themes/Default/Views/Shared/{0}.cshtml"
};
}
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
{
// bypass the view cache, the view will change depending on the current theme
const bool useViewCache = false;
return base.FindView(controllerContext, viewName, masterName, useViewCache);
}
}
}
答案 1 :(得分:0)
完全主题化Web应用程序是一个非常复杂的问题。在拥有功能性博客引擎之前,你甚至不应该尝试解决它。
一个简单且相当容易实现的自定义,允许用户选择.css文件,并确保页面中的所有元素都可以使用适当的ID /类轻松地进行寻址/选择。