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

这是完全正常的。在视图中
添加 simple 没有任何问题。if

您应该避免在视图中添加业务逻辑;相反,您应该将它放在控件中并将结果发送到视图(就像您现在所做的那样)。

于 2012-06-08T13:23:50.160 回答