Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在asp.net mvc 3中允许在有限的时间内编辑内容_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在asp.net mvc 3中允许在有限的时间内编辑内容

Asp.net mvc 如何在asp.net mvc 3中允许在有限的时间内编辑内容,asp.net-mvc,Asp.net Mvc,我必须这样实施: 用户可以在发布评论后10分钟内编辑评论。将有一个与服务器评论相关联的编辑链接。发布评论的时间少于10分钟。但是,如果超过10分钟,评论可能无法保存 如何在asp.net mvc 3中实现这一点?您可以将时间戳与注释一起保存,并在生成编辑链接和允许保存之前进行检查。。。或者我不明白你的问题:)是的,@Palantir是正确的 我只是想对如何处理表示层进行一些扩展 保存注释时,将CreatedOn字段设置为DateTime.Now 具有如下所示的ViewModel: public

我必须这样实施:

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


如何在asp.net mvc 3中实现这一点?

您可以将时间戳与注释一起保存,并在生成编辑链接和允许保存之前进行检查。。。或者我不明白你的问题:)

是的,@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); } }
}
然后,模板:

@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)
}
这样,您的主视图将保持干净和干燥,因为您可以在整个应用程序中重用此模板

@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)
}