我有一个场景,只有一些用户有权更新字段。我正在尝试将 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 问题并通过将其放入视图来简化它。