0

学習課題として、MVC3 を使用して .NET で単純な「ブログ」アプリケーションを作成しています。

初歩的な「続きを読む」機能を実装するために、tiny_mce にカスタム ボタンを追加しました。

<!--#readmore#-->

投稿内容に。

これまでのすべてのブログ エンジンで行われているように、その時点までのコンテンツを取得してホームページに表示し、さらに読むものがあればリンクを追加するという考え方です。

これを行うのは非常に簡単ですが、どこで行うべきかという質問があります。現在、Post モデルに次の機能があります。

public String content_read_more()
    {
        if (this.content.Contains("<!--#readmore#-->"))
        {
            int position = this.content.IndexOf("<!--#readmore#-->");
             this.has_read_more = true; 
            return this.content.Substring(0, position);
        }
        else
        {
            this.has_read_more = false;
            return this.content;                 
        }
    }

モデル内で完全な投稿へのリンクを作成することは避けました。モデルが行うべきことではないように思われたからです。

しかし、そのようにすると、投稿のビューにさらにコンテンツがあるかどうかを確認する必要があります。

<div class="content">
    @Html.Raw(item.content_read_more())
    @if (item.hasReadMoreLink())
    {
        @Html.ActionLink("Leer más", "Details", new { id = item.id })
    }
</div>

ビューにロジックを導入します。

コントローラーでやればいいの?これを行うより良い方法はありますか?このように考えるのは難しいですか?

ありがとうございました!

4

1 に答える 1

3

それは完全に正常です。ビューに
単純な s を追加しても問題はありません。if

ビューにビジネス ロジックを追加することは避けてください。代わりに、それをコントロールに入れて、結果をビューに送信する必要があります (まさに今行っているように)。

于 2012-06-08T13:23:50.160 に答える