2012-06-08 44 views
0

我正在使用MVC3编写一个简单的“blog”应用程序,作为学习练习。在.NET中使用MVC3实现“Read More”

要实现 - 基本的 - “更多”的功能,我添加了一个自定义的按钮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;     
     } 
    } 

我避免创建模型内的链接完成POST,因为它似乎没有被什么东西模型应该做的。

但是,这样做那样,我要检查是否有后视图中的更多内容:

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

它引入了逻辑到视图中。

我应该在控制器中执行吗?有一个更好的方法吗?我在想这个方式太难了吗?

谢谢!

+0

.Net公共成员名称应该是UpperCamelCase。 – SLaks

+0

@SLaks,这是一个惯例,也是一个好主意,但说它“应该”就像隐含着其他任何错误;我不认为这是准确的 –

+0

@JeremyHolovacs,你的意思是称其余的内容? – jlasarte

回答

3

这很正常。
在视图中添加简单的if s没有任何问题。

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

+0

那么,想想它太难了,那么?谢谢你的回答:)。 – jlasarte