1

我有一个场景,只有一些用户有权更新字段。我正在尝试将 jEditable 放置到位以允许对字段进行就地编辑,并希望在控制器中检查后端的权限,如下所示:

 public JsonResult UpdateComment(string MRN, string comment)
 {
    if (this.HttpContext.User.CanComment())
    {
        return this.Json(new 
           { 
             Status = "OK", 
             value = this.service.UpdateComment(MRN, comment) 
           });
    }

    return this.Json(new { //???? });
}

我的视图看起来像:

@model MyApp.ViewModels.DetailViewModel
<div>
    ....
    <span id="txtSource">@Html.DisplayFor(m=>m.Source)</span>
    <span id="txtMRN">@Html.DisplayFor(m=>m.MRN)</span>
    <span id="@Model.CommentIdName">@Html.DisplayFor(m=>m.Comments)</span>
    ....
</div>
<script type="text/javascript">
    $(function() {
        $('#editComment').editable("/@Model.Source/UpdateComment",
            {
                id: 'mrn',
                name: 'comment',
                type: 'textarea',
                cancel: 'Cancel',
                submit: ' OK',
                tooltip: 'Click to Edit Comment...'
            });
    });
</script>

在用户没有“评论”权限的情况下,需要取消编辑,并将字段值恢复为原来的值。

我已经在我的视图中设置了将字段的 id 更改为 jEditable 在呈现视图时不寻找的东西,这样就可以处理大多数情况,而无需在后端处理它。

我正在尝试保护数据并返回合理的响应,但我不知道需要什么代码来代替注释//????'。

编辑:

修复了 javascript 问题并通过将其放入视图来简化它。

4

0 回答 0