0

对于需要角色的操作,我对 Jquery 对话框有一点问题。在我的示例中,用户可以单击删除按钮并且必须确认操作。在我的控制器中,删除操作需要一个角色,如果用户处于所需角色,则删除该对象。

问题:如何在*元素被删除时提醒用户(重定向到索引视图)*出现错误(消息提醒)*他没有删除权限(消息提醒)

在使用授权过滤器之前,删除操作会返回一个带有布尔值的 JSON,该布尔值指示是否存在错误、成功时重定向的 URL 和错误警报消息。

由于我无法从过滤器返回 JSON,因此我使用授权过滤器创建了另一个方法,该方法返回带有确认内容的部分视图。如果用户没有权限,过滤器会返回带有未经授权的异常内容的部分视图。

问题:如何区分返回的部分视图。创建对话框时,我需要了解按钮功能。

谢谢!

4

2 回答 2

0

我建议在您的模型中添加一些东西,其中 jquery 对话框正在构建,例如 CanDeleteItem 标志。然后使用该信息构建您的对话框,而不是假设他们具有删除权限。显示用户无法使用的按钮是个坏主意。

对于其他错误情况,假设您使用 jquery.ajax 发布到删除操作,当控制器抛出异常时应该引发 onerror 事件。

$.ajax({
  url: "/delete/5",
  type: "POST",
  success: function(json){
   // the delete happened
  },
  error: function(request, status, error){
  // it failed, authorization(403) or just an error (500)
  }
});
于 2010-03-26T14:43:06.503 回答
0

Found a solution by adding code to the Global.asax:

protected void Application_EndRequest()
    {
        if (Context.Response.StatusCode == 302 &&
            Context.Request.Headers["X-Requested-With"] == "XMLHttpRequest")
        {
            Context.Response.Clear();
            Context.Response.StatusCode = 401;
        }
    }
于 2010-03-31T08:01:11.003 回答