ちょっと手順しくってしまって、mist.clueup.orgで公開していたコンテンツが今見えない状態です。で、ブログだけだしかんたんだよねと思って、なぜかASP.NET MVC 3を使って閲覧だけするものを作り始めました…無謀な。
手順はそう難しくありません。ブログエントリのURL作るところがちょっとあれなのですが。
- ブログエントリはcs_Postsというテーブルに入っています。
- 本文はPostIDとParentIDの値が一致して、PostTypeの値が0のものだけです。
- BlogエントリのURLは (ドメイン名/blogs/1/YYYY/MM/DD/{PostNameの値}.aspx) という形式になります。PostNameがNULLであった場合、Subjectの値がエンコードされて使われるはずです。1はCommunity Serverのアカウントごとに振られた値ですね。1,2,3という連番になっているはずです。
- で、ADO.NET Entity Data Modelを作ります。リレーションなどは気にしなくてもOK。できれば、cs_Postsの中から必要な列だけ抜き出した方がいいかもしれませんね。上記の列があれば最低限のことはできます。
- Contollerを追加します。LINQでこんな感じにして抜き出します。これでviewを作り始めるのですが…今この辺で泣いてます(涙)。
var csEntity = new blogEntities(); var blogEntries = (from p in csEntity.cs_Posts where p.PostType == 0 && p.PostID == p.ParentID orderby p.PostDate descending select p).Take(10); return View(blogEntries);
ないていることーそのいちー。BodyとFormattedBodyにはhtmlタグが追加された本文が入っているのですが、それをどうやってRazorでレンダリングするのかわからない(涙)。てっきりどちらかはhtmlタグのないプレーンなものだと思っていた(私ならそう設計する)ので、涙目です。
(解決しました)
ASP.NET MVC 3 Razor における HTML エンコードと Html.Raw メソッドの利用 - THE TRUTH IS OUT THERE - Site Home - MSDN Blogs
RazorのHtml.Raw()でそのままレンダリングされるそうです。id:mayukiさん、id:shiba-yanさんにもおしえてもらいました。ありがとうございます。
ないていることーそのにー。URL rewriteがまだわかってないので、この階層でURL rewrite使って、サマリーページからCommunity Server仕様のURLへの書き換え。たぶんできるだろうと思うのですが、その辺を調べてない。
ないていることーそのさんー。CSSが作れないので、依然と同等とはいかないまでも、それなりのCSSのスタイルが…Community Serverのぱく…ごほん。