1

私は完全にプロフェッショナルで、誰にも使われないブログエンジンを構築し始めました。だから、普通の英語では、あなたが先に進んでこれを自分のために動かすと言うことができず、あなたは幸せになれます。今、私はDALに取り組んでいますが、私はまた、私は何をする必要があるか下に置くことを試みる、テーマASP.NET MVCで書かれたブログエンジンのセレクタアイディア

https://github.com/tugberkugurlu/MvcBloggy

あなたは、私がこれまで書いてきた完全なコードが表示されます。私がここにこだわっているのは、ブログエンジンのテーマ選択をどのように処理できるかということです。

  • 基本の構築を開始するにはどうすればよいですか?スケルトンhtmlを作成し、他の人にCSSを書かせて、基本的にそれを選択させるべきですか?または、他の何か?
  • ASP.NET MVCの構造上、この機能を処理するにはどのような方法が最適でしょうか。

あなたの誰もこれまでのようなことをやったことはありません。あなたが道を提供できるのであれば、私は感謝します。

答えて

1

私はあなたがNBlog temableブログエンジンを見てお勧め

特に

https://github.com/ChrisFulstow/NBlog

、完全クラスでThemeableRazorViewEngine.cs

https://github.com/ChrisFulstow/NBlog/blob/master/NBlog.Web/Application/Infrastructure/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); 
    } 
} 
} 
0

を見ますテーマウェブアプリケーションは非常に複雑な問題です。機能的なブログエンジンを使う前に、それを解決しようとすべきではありません。

シンプルで合理的にカスタマイズが容易で、ユーザーが.cssファイルを選択し、ページ内のすべての要素が適切なID /クラスで簡単にアドレス指定/選択できることを確認できます。

関連する問題