如何在asp.net mvc 3中限制时间内进行内容编辑

时间:2011-06-09 07:47:38

标签: asp.net-mvc

我必须这样实现:

用户可以在发布评论后10分钟内编辑评论。将有与服务器时间的评论相关联的编辑链接少于发布评论的10分钟。但是,如果超过10分钟,评论将无法保存。

我怎样才能在asp.net mvc 3中实现这个目标?

2 个答案:

答案 0 :(得分:1)

您将时间戳与评论一起保存并在生成编辑链接之前和允许保存之前进行检查......或者我可能不理解您的问题:)

答案 1 :(得分:1)

是的,@ Palantir是正确的。

只想扩展一下如何处理表示层。

保存评论时,请将CreatedOn字段设置为DateTime.Now

拥有像这样的ViewModel:

public class CommentViewModel
{
   [HiddenInput] public int CommentId { get; set; }     
   public string Text { get; set; }    
   public DateTime CreatedOn { get; set; }    
   public bool CanEdit { get { return DateTime.Now <= CreatedOn.AddMinutes(10); } }
}

在主视图中,使用编辑器模板来渲染链接:

@Html.EditorFor(model => model.CommentViewModel)

然后是模板:

@model YourApp.Models.CommentViewModel

@if (Model.CanEdit) {
   @Html.EditorFor(model => model.Text)
   @Html.ActionLink("Save", "CommentController", new { id = @Model.CommentId })
} else {
   @Html.DisplayFor(model => model.Text)
}

这样您的主视图就会保持干净和干净 - 因为您可以在整个应用程序中重复使用此模板。