我正在用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>
将逻辑引入视图。
我应该在控制器中进行吗?有一个更好的方法吗?我这么想太难了吗?
谢谢!
答案 0 :(得分:3)
这是完全正常的
在视图中添加简单if
没有任何问题。
您应避免在视图中添加业务逻辑;相反,你应该将它放在控件中并将结果发送到视图(就像你现在正在做的那样)。